From c41d9d62a33a37914e0361d6c81818ee18f31f26 Mon Sep 17 00:00:00 2001 From: Leon Denis Date: Tue, 12 Mar 2024 02:30:43 +0000 Subject: [PATCH] Android Rebrand with working build --- src/android/.gitignore | 2 +- src/android/app/build.gradle.kts | 12 +-- src/android/app/proguard-rules.pro | 2 +- .../res/drawable/{ic_yuzu.xml => ic_suyu.xml} | 0 .../{ic_yuzu_full.xml => ic_suyu_full.xml} | 0 .../{ic_yuzu_title.xml => ic_suyu_title.xml} | 0 src/android/app/src/main/AndroidManifest.xml | 16 ++-- .../suyu_emu}/NativeLibrary.kt | 38 ++++---- .../suyu_emu/SuyuApplication.kt} | 18 ++-- .../suyu_emu}/activities/EmulationActivity.kt | 40 ++++----- .../suyu_emu}/adapters/AbstractDiffAdapter.kt | 6 +- .../suyu_emu}/adapters/AbstractListAdapter.kt | 6 +- .../adapters/AbstractSingleSelectionList.kt | 8 +- .../suyu_emu}/adapters/AddonAdapter.kt | 12 +-- .../suyu_emu}/adapters/AppletAdapter.kt | 24 ++--- .../adapters/CabinetLauncherDialogAdapter.kt | 26 +++--- .../suyu_emu}/adapters/DriverAdapter.kt | 20 ++--- .../suyu_emu}/adapters/FolderAdapter.kt | 16 ++-- .../suyu_emu}/adapters/GameAdapter.kt | 32 +++---- .../adapters/GamePropertiesAdapter.kt | 22 ++--- .../suyu_emu}/adapters/HomeSettingAdapter.kt | 20 ++--- .../suyu_emu}/adapters/InstallableAdapter.kt | 12 +-- .../suyu_emu}/adapters/LicenseAdapter.kt | 14 +-- .../suyu_emu}/adapters/SetupAdapter.kt | 20 ++--- .../applets/keyboard/SoftwareKeyboard.kt | 10 +-- .../keyboard/ui/KeyboardDialogFragment.kt | 14 +-- .../DiskShaderCacheProgress.kt | 14 +-- .../suyu_emu}/features/DocumentProvider.kt | 18 ++-- .../suyu_emu}/features/input/NativeInput.kt | 22 ++--- .../features/input/SuyuInputDevice.kt} | 28 +++--- .../suyu_emu/features/input/SuyuVibrator.kt} | 32 +++---- .../features/input/model/AnalogDirection.kt | 4 +- .../features/input/model/ButtonName.kt | 4 +- .../features/input/model/InputType.kt | 4 +- .../features/input/model/NativeAnalog.kt | 4 +- .../features/input/model/NativeButton.kt | 4 +- .../features/input/model/NativeTrigger.kt | 4 +- .../features/input/model/NpadStyleIndex.kt | 6 +- .../features/input/model/PlayerInput.kt | 4 +- .../settings/model/AbstractBooleanSetting.kt | 4 +- .../settings/model/AbstractByteSetting.kt | 4 +- .../settings/model/AbstractFloatSetting.kt | 4 +- .../settings/model/AbstractIntSetting.kt | 4 +- .../settings/model/AbstractLongSetting.kt | 4 +- .../settings/model/AbstractSetting.kt | 6 +- .../settings/model/AbstractShortSetting.kt | 4 +- .../settings/model/AbstractStringSetting.kt | 4 +- .../features/settings/model/BooleanSetting.kt | 6 +- .../features/settings/model/ByteSetting.kt | 6 +- .../features/settings/model/FloatSetting.kt | 6 +- .../features/settings/model/IntSetting.kt | 6 +- .../features/settings/model/LongSetting.kt | 6 +- .../features/settings/model/Settings.kt | 10 +-- .../features/settings/model/ShortSetting.kt | 6 +- .../features/settings/model/StringSetting.kt | 6 +- .../settings/model/view/AnalogInputSetting.kt | 14 +-- .../settings/model/view/ButtonInputSetting.kt | 12 +-- .../settings/model/view/DateTimeSetting.kt | 6 +- .../settings/model/view/HeaderSetting.kt | 4 +- .../model/view/InputProfileSetting.kt | 10 +-- .../settings/model/view/InputSetting.kt | 18 ++-- .../model/view/IntSingleChoiceSetting.kt | 6 +- .../model/view/ModifierInputSetting.kt | 12 +-- .../settings/model/view/RunnableSetting.kt | 4 +- .../settings/model/view/SettingsItem.kt | 36 ++++---- .../model/view/SingleChoiceSetting.kt | 8 +- .../settings/model/view/SliderSetting.kt | 14 +-- .../settings/model/view/StringInputSetting.kt | 6 +- .../model/view/StringSingleChoiceSetting.kt | 6 +- .../settings/model/view/SubmenuSetting.kt | 6 +- .../settings/model/view/SwitchSetting.kt | 10 +-- .../settings/ui/InputDialogFragment.kt | 26 +++--- .../settings/ui/InputProfileAdapter.kt | 16 ++-- .../settings/ui/InputProfileDialogFragment.kt | 14 +-- .../ui/NewInputProfileDialogFragment.kt | 10 +-- .../features/settings/ui/SettingsActivity.kt | 18 ++-- .../features/settings/ui/SettingsAdapter.kt | 28 +++--- .../settings/ui/SettingsDialogFragment.kt | 34 +++---- .../features/settings/ui/SettingsFragment.kt | 18 ++-- .../settings/ui/SettingsFragmentPresenter.kt | 48 +++++----- .../settings/ui/SettingsSearchFragment.kt | 18 ++-- .../features/settings/ui/SettingsViewModel.kt | 18 ++-- .../ui/viewholder/DateTimeViewHolder.kt | 14 +-- .../ui/viewholder/HeaderViewHolder.kt | 10 +-- .../ui/viewholder/InputProfileViewHolder.kt | 16 ++-- .../settings/ui/viewholder/InputViewHolder.kt | 22 ++--- .../ui/viewholder/RunnableViewHolder.kt | 14 +-- .../ui/viewholder/SettingViewHolder.kt | 12 +-- .../ui/viewholder/SingleChoiceViewHolder.kt | 18 ++-- .../ui/viewholder/SliderViewHolder.kt | 16 ++-- .../ui/viewholder/StringInputViewHolder.kt | 14 +-- .../ui/viewholder/SubmenuViewHolder.kt | 14 +-- .../ui/viewholder/SwitchSettingViewHolder.kt | 14 +-- .../features/settings/utils/SettingsFile.kt | 12 +-- .../suyu_emu}/fragments/AboutFragment.kt | 14 +-- .../fragments/AddGameFolderDialogFragment.kt | 14 +-- .../suyu_emu}/fragments/AddonsFragment.kt | 22 ++--- .../fragments/AppletLauncherFragment.kt | 18 ++-- .../CabinetLauncherDialogFragment.kt | 10 +-- .../ContentTypeSelectionDialogFragment.kt | 14 +-- .../fragments/CoreErrorDialogFragment.kt | 8 +- .../fragments/DriverManagerFragment.kt | 28 +++--- .../fragments/DriversLoadingDialogFragment.kt | 12 +-- .../fragments/EarlyAccessFragment.kt | 12 +-- .../suyu_emu}/fragments/EmulationFragment.kt | 42 ++++----- .../GameFolderPropertiesDialogFragment.kt | 16 ++-- .../fragments/GameFoldersFragment.kt | 20 ++--- .../suyu_emu}/fragments/GameInfoFragment.kt | 20 ++--- .../fragments/GamePropertiesFragment.kt | 54 +++++------ .../fragments/HomeSettingsFragment.kt | 80 ++++++++--------- .../fragments/InstallableFragment.kt | 34 +++---- .../fragments/LaunchGameDialogFragment.kt | 12 +-- .../LicenseBottomSheetDialogFragment.kt | 10 +-- .../suyu_emu}/fragments/LicensesFragment.kt | 16 ++-- .../fragments/MessageDialogFragment.kt | 10 +-- .../PermissionDeniedDialogFragment.kt | 6 +- .../fragments/ProgressDialogFragment.kt | 14 +-- .../fragments/ResetSettingsDialogFragment.kt | 8 +- .../suyu_emu}/fragments/SearchFragment.kt | 26 +++--- .../suyu_emu}/fragments/SetupFragment.kt | 40 ++++----- .../fragments/SetupWarningDialogFragment.kt | 6 +- .../layout/AutofitGridLayoutManager.kt | 6 +- .../suyu_emu}/model/AddonViewModel.kt | 8 +- .../suyu_emu}/model/Applet.kt | 6 +- .../suyu_emu}/model/Driver.kt | 6 +- .../suyu_emu}/model/DriverViewModel.kt | 24 ++--- .../suyu_emu}/model/EmulationViewModel.kt | 4 +- .../yuzu_emu => suyu/suyu_emu}/model/Game.kt | 20 ++--- .../suyu_emu}/model/GameDir.kt | 4 +- .../suyu_emu}/model/GameProperties.kt | 4 +- .../suyu_emu}/model/GameVerificationResult.kt | 4 +- .../suyu_emu}/model/GamesViewModel.kt | 16 ++-- .../suyu_emu}/model/HomeSetting.kt | 4 +- .../suyu_emu}/model/HomeViewModel.kt | 4 +- .../suyu_emu}/model/InstallResult.kt | 4 +- .../suyu_emu}/model/Installable.kt | 4 +- .../suyu_emu}/model/License.kt | 4 +- .../suyu_emu}/model/MessageDialogViewModel.kt | 4 +- .../suyu_emu}/model/MinimalDocumentFile.kt | 4 +- .../yuzu_emu => suyu/suyu_emu}/model/Patch.kt | 4 +- .../suyu_emu}/model/PatchType.kt | 4 +- .../suyu_emu}/model/SelectableItem.kt | 4 +- .../suyu_emu}/model/SetupPage.kt | 4 +- .../suyu_emu}/model/TaskViewModel.kt | 4 +- .../suyu_emu}/overlay/InputOverlay.kt | 26 +++--- .../overlay/InputOverlayDrawableButton.kt | 10 +-- .../overlay/InputOverlayDrawableDpad.kt | 8 +- .../overlay/InputOverlayDrawableJoystick.kt | 12 +-- .../suyu_emu}/overlay/model/OverlayControl.kt | 10 +-- .../overlay/model/OverlayControlData.kt | 4 +- .../overlay/model/OverlayControlDefault.kt | 4 +- .../suyu_emu}/overlay/model/OverlayLayout.kt | 4 +- .../suyu_emu}/ui/GamesFragment.kt | 22 ++--- .../suyu_emu}/ui/main/MainActivity.kt | 46 +++++----- .../suyu_emu}/ui/main/ThemeProvider.kt | 4 +- .../suyu_emu}/utils/AddonUtil.kt | 4 +- .../utils/DirectoryInitialization.kt | 26 +++--- .../suyu_emu}/utils/DocumentsTree.kt | 6 +- .../suyu_emu}/utils/FileUtil.kt | 28 +++--- .../suyu_emu}/utils/GameHelper.kt | 16 ++-- .../suyu_emu}/utils/GameIconUtils.kt | 24 ++--- .../suyu_emu}/utils/GameMetadata.kt | 4 +- .../suyu_emu}/utils/GpuDriverHelper.kt | 16 ++-- .../suyu_emu}/utils/GpuDriverMetadata.kt | 4 +- .../suyu_emu}/utils/InputHandler.kt | 20 ++--- .../suyu_emu}/utils/InsetsHelper.kt | 4 +- .../suyu_emu}/utils/LifecycleUtils.kt | 4 +- .../yuzu_emu => suyu/suyu_emu}/utils/Log.kt | 4 +- .../suyu_emu}/utils/MemoryUtil.kt | 10 +-- .../suyu_emu}/utils/NativeConfig.kt | 10 +-- .../suyu_emu}/utils/NfcReader.kt | 6 +- .../suyu_emu}/utils/ParamPackage.kt | 4 +- .../suyu_emu}/utils/PreferenceUtil.kt | 4 +- .../suyu_emu}/utils/SerializableHelper.kt | 4 +- .../suyu_emu}/utils/ThemeHelper.kt | 20 ++--- .../suyu_emu}/utils/ViewUtils.kt | 4 +- .../viewholder/AbstractViewHolder.kt | 8 +- .../suyu_emu}/views/FixedRatioSurfaceView.kt | 4 +- src/android/app/src/main/jni/CMakeLists.txt | 14 +-- .../app/src/main/jni/android_config.cpp | 2 +- src/android/app/src/main/jni/android_config.h | 2 +- .../app/src/main/jni/android_settings.cpp | 2 +- .../app/src/main/jni/android_settings.h | 2 +- .../src/main/jni/emu_window/emu_window.cpp | 2 +- .../app/src/main/jni/emu_window/emu_window.h | 2 +- .../app/src/main/jni/game_metadata.cpp | 18 ++-- src/android/app/src/main/jni/native.cpp | 84 +++++++++--------- src/android/app/src/main/jni/native.h | 2 +- .../app/src/main/jni/native_config.cpp | 80 ++++++++--------- src/android/app/src/main/jni/native_input.cpp | 80 ++++++++--------- src/android/app/src/main/jni/native_log.cpp | 12 +-- .../ic_stat_notification_logo.png | Bin 46179 -> 6213 bytes .../ic_stat_notification_logo.png | Bin 48264 -> 8612 bytes .../src/main/res/drawable-xhdpi/tv_banner.png | Bin 7764 -> 9224 bytes .../ic_stat_notification_logo.png | Bin 56651 -> 14380 bytes .../app/src/main/res/drawable/ic_launcher.xml | 4 +- .../app/src/main/res/drawable/ic_suyu.xml | 29 ++++++ .../src/main/res/drawable/ic_suyu_full.xml | 12 +++ .../src/main/res/drawable/ic_suyu_title.xml | 29 ++++++ .../app/src/main/res/drawable/ic_yuzu.xml | 22 ----- .../src/main/res/drawable/ic_yuzu_full.xml | 12 --- .../src/main/res/drawable/ic_yuzu_title.xml | 24 ----- .../main/res/drawable/premium_background.xml | 4 +- .../main/res/layout-w600dp/fragment_about.xml | 2 +- .../src/main/res/layout/fragment_about.xml | 2 +- .../main/res/layout/fragment_emulation.xml | 6 +- .../res/layout/fragment_home_settings.xml | 2 +- .../main/res/layout/fragment_installables.xml | 2 +- .../res/navigation/emulation_navigation.xml | 10 +-- .../main/res/navigation/home_navigation.xml | 59 ++++++------ .../res/navigation/settings_navigation.xml | 8 +- .../app/src/main/res/values-ar/strings.xml | 24 ++--- .../app/src/main/res/values-ckb/strings.xml | 26 +++--- .../app/src/main/res/values-cs/strings.xml | 30 +++---- .../app/src/main/res/values-de/strings.xml | 44 ++++----- .../app/src/main/res/values-es/strings.xml | 52 +++++------ .../app/src/main/res/values-fa/strings.xml | 48 +++++----- .../app/src/main/res/values-fr/strings.xml | 52 +++++------ .../app/src/main/res/values-he/strings.xml | 52 +++++------ .../app/src/main/res/values-hu/strings.xml | 48 +++++----- .../app/src/main/res/values-id/strings.xml | 50 +++++------ .../app/src/main/res/values-it/strings.xml | 52 +++++------ .../app/src/main/res/values-ja/strings.xml | 44 ++++----- .../app/src/main/res/values-ko/strings.xml | 52 +++++------ .../app/src/main/res/values-nb/strings.xml | 42 ++++----- .../src/main/res/values-night-v31/themes.xml | 2 +- .../src/main/res/values-night/suyu_colors.xml | 37 ++++++++ .../app/src/main/res/values-night/themes.xml | 2 +- .../src/main/res/values-night/yuzu_colors.xml | 37 -------- .../app/src/main/res/values-pl/strings.xml | 38 ++++---- .../src/main/res/values-pt-rBR/strings.xml | 52 +++++------ .../src/main/res/values-pt-rPT/strings.xml | 48 +++++----- .../app/src/main/res/values-ru/strings.xml | 52 +++++------ .../app/src/main/res/values-uk/strings.xml | 36 ++++---- .../app/src/main/res/values-v31/themes.xml | 2 +- .../app/src/main/res/values-vi/strings.xml | 42 ++++----- .../src/main/res/values-zh-rCN/strings.xml | 52 +++++------ .../src/main/res/values-zh-rTW/strings.xml | 52 +++++------ .../app/src/main/res/values/strings.xml | 54 +++++------ .../app/src/main/res/values/styles.xml | 24 ++--- .../app/src/main/res/values/suyu_colors.xml | 37 ++++++++ .../app/src/main/res/values/themes.xml | 68 +++++++------- .../app/src/main/res/values/yuzu_colors.xml | 37 -------- src/android/build.gradle.kts | 2 +- src/android/gradle.properties | 2 +- src/android/gradlew | 2 +- src/android/gradlew.bat | 2 +- src/android/settings.gradle.kts | 2 +- 248 files changed, 2080 insertions(+), 2067 deletions(-) rename src/android/app/src/ea/res/drawable/{ic_yuzu.xml => ic_suyu.xml} (100%) rename src/android/app/src/ea/res/drawable/{ic_yuzu_full.xml => ic_suyu_full.xml} (100%) rename src/android/app/src/ea/res/drawable/{ic_yuzu_title.xml => ic_suyu_title.xml} (100%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/NativeLibrary.kt (93%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu/YuzuApplication.kt => suyu/suyu_emu/SuyuApplication.kt} (79%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/activities/EmulationActivity.kt (95%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/adapters/AbstractDiffAdapter.kt (90%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/adapters/AbstractListAdapter.kt (96%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/adapters/AbstractSingleSelectionList.kt (95%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/adapters/AddonAdapter.kt (80%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/adapters/AppletAdapter.kt (80%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/adapters/CabinetLauncherDialogAdapter.kt (74%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/adapters/DriverAdapter.kt (80%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/adapters/FolderAdapter.kt (77%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/adapters/GameAdapter.kt (79%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/adapters/GamePropertiesAdapter.kt (87%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/adapters/HomeSettingAdapter.kt (85%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/adapters/InstallableAdapter.kt (79%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/adapters/LicenseAdapter.kt (78%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/adapters/SetupAdapter.kt (84%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/applets/keyboard/SoftwareKeyboard.kt (94%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/applets/keyboard/ui/KeyboardDialogFragment.kt (90%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/disk_shader_cache/DiskShaderCacheProgress.kt (81%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/DocumentProvider.kt (97%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/input/NativeInput.kt (96%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu/features/input/YuzuInputDevice.kt => suyu/suyu_emu/features/input/SuyuInputDevice.kt} (75%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu/features/input/YuzuVibrator.kt => suyu/suyu_emu/features/input/SuyuVibrator.kt} (64%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/input/model/AnalogDirection.kt (65%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/input/model/ButtonName.kt (81%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/input/model/InputType.kt (68%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/input/model/NativeAnalog.kt (74%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/input/model/NativeButton.kt (84%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/input/model/NativeTrigger.kt (63%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/input/model/NpadStyleIndex.kt (84%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/input/model/PlayerInput.kt (96%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/AbstractBooleanSetting.kt (65%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/AbstractByteSetting.kt (63%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/AbstractFloatSetting.kt (64%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/AbstractIntSetting.kt (62%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/AbstractLongSetting.kt (63%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/AbstractSetting.kt (81%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/AbstractShortSetting.kt (64%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/AbstractStringSetting.kt (64%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/BooleanSetting.kt (91%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/ByteSetting.kt (82%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/FloatSetting.kt (83%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/IntSetting.kt (90%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/LongSetting.kt (82%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/Settings.kt (94%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/ShortSetting.kt (82%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/StringSetting.kt (83%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/view/AnalogInputSetting.kt (66%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/view/ButtonInputSetting.kt (69%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/view/DateTimeSetting.kt (77%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/view/HeaderSetting.kt (71%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/view/InputProfileSetting.kt (80%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/view/InputSetting.kt (90%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/view/IntSingleChoiceSetting.kt (86%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/view/ModifierInputSetting.kt (72%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/view/RunnableSetting.kt (82%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/view/SettingsItem.kt (93%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/view/SingleChoiceSetting.kt (76%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/view/SliderSetting.kt (75%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/view/StringInputSetting.kt (78%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/view/StringSingleChoiceSetting.kt (85%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/view/SubmenuSetting.kt (74%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/model/view/SwitchSetting.kt (75%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/InputDialogFragment.kt (93%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/InputProfileAdapter.kt (84%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/InputProfileDialogFragment.kt (93%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/NewInputProfileDialogFragment.kt (91%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/SettingsActivity.kt (92%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/SettingsAdapter.kt (95%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/SettingsDialogFragment.kt (92%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/SettingsFragment.kt (94%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/SettingsFragmentPresenter.kt (96%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/SettingsSearchFragment.kt (93%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/SettingsViewModel.kt (89%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/viewholder/DateTimeViewHolder.kt (80%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/viewholder/HeaderViewHolder.kt (64%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/viewholder/InputProfileViewHolder.kt (67%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/viewholder/InputViewHolder.kt (74%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/viewholder/RunnableViewHolder.kt (76%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/viewholder/SettingViewHolder.kt (82%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/viewholder/SingleChoiceViewHolder.kt (83%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/viewholder/SliderViewHolder.kt (76%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/viewholder/StringInputViewHolder.kt (75%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/viewholder/SubmenuViewHolder.kt (75%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/ui/viewholder/SwitchSettingViewHolder.kt (78%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/features/settings/utils/SettingsFile.kt (71%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/AboutFragment.kt (93%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/AddGameFolderDialogFragment.kt (85%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/AddonsFragment.kt (94%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/AppletLauncherFragment.kt (89%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/CabinetLauncherDialogFragment.kt (83%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/ContentTypeSelectionDialogFragment.kt (88%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/CoreErrorDialogFragment.kt (91%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/DriverManagerFragment.kt (91%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/DriversLoadingDialogFragment.kt (84%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/EarlyAccessFragment.kt (90%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/EmulationFragment.kt (97%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/GameFolderPropertiesDialogFragment.kt (87%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/GameFoldersFragment.kt (89%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/GameInfoFragment.kt (93%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/GamePropertiesFragment.kt (92%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/HomeSettingsFragment.kt (89%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/InstallableFragment.kt (94%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/LaunchGameDialogFragment.kt (88%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/LicenseBottomSheetDialogFragment.kt (87%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/LicensesFragment.kt (92%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/MessageDialogFragment.kt (97%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/PermissionDeniedDialogFragment.kt (91%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/ProgressDialogFragment.kt (93%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/ResetSettingsDialogFragment.kt (83%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/SearchFragment.kt (93%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/SetupFragment.kt (93%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/fragments/SetupWarningDialogFragment.kt (95%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/layout/AutofitGridLayoutManager.kt (94%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/AddonViewModel.kt (94%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/Applet.kt (93%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/Driver.kt (81%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/DriverViewModel.kt (90%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/EmulationViewModel.kt (96%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/Game.kt (85%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/GameDir.kt (71%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/GameProperties.kt (90%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/GameVerificationResult.kt (77%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/GamesViewModel.kt (94%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/HomeSetting.kt (83%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/HomeViewModel.kt (96%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/InstallResult.kt (77%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/Installable.kt (75%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/License.kt (76%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/MessageDialogViewModel.kt (78%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/MinimalDocumentFile.kt (76%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/Patch.kt (74%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/PatchType.kt (73%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/SelectableItem.kt (64%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/SetupPage.kt (87%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/model/TaskViewModel.kt (96%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/overlay/InputOverlay.kt (98%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/overlay/InputOverlayDrawableButton.kt (94%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/overlay/InputOverlayDrawableDpad.kt (97%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/overlay/InputOverlayDrawableJoystick.kt (96%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/overlay/model/OverlayControl.kt (97%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/overlay/model/OverlayControlData.kt (85%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/overlay/model/OverlayControlDefault.kt (78%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/overlay/model/OverlayLayout.kt (64%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/ui/GamesFragment.kt (91%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/ui/main/MainActivity.kt (96%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/ui/main/ThemeProvider.kt (70%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/AddonUtil.kt (61%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/DirectoryInitialization.kt (92%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/DocumentsTree.kt (96%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/FileUtil.kt (95%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/GameHelper.kt (93%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/GameIconUtils.kt (83%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/GameMetadata.kt (83%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/GpuDriverHelper.kt (94%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/GpuDriverMetadata.kt (97%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/InputHandler.kt (85%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/InsetsHelper.kt (88%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/LifecycleUtils.kt (93%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/Log.kt (90%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/MemoryUtil.kt (94%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/NativeConfig.kt (95%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/NfcReader.kt (97%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/ParamPackage.kt (98%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/PreferenceUtil.kt (92%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/SerializableHelper.kt (93%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/ThemeHelper.kt (86%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/utils/ViewUtils.kt (96%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/viewholder/AbstractViewHolder.kt (70%) rename src/android/app/src/main/java/org/{yuzu/yuzu_emu => suyu/suyu_emu}/views/FixedRatioSurfaceView.kt (96%) create mode 100644 src/android/app/src/main/res/drawable/ic_suyu.xml create mode 100644 src/android/app/src/main/res/drawable/ic_suyu_full.xml create mode 100644 src/android/app/src/main/res/drawable/ic_suyu_title.xml delete mode 100644 src/android/app/src/main/res/drawable/ic_yuzu.xml delete mode 100644 src/android/app/src/main/res/drawable/ic_yuzu_full.xml delete mode 100644 src/android/app/src/main/res/drawable/ic_yuzu_title.xml create mode 100644 src/android/app/src/main/res/values-night/suyu_colors.xml delete mode 100644 src/android/app/src/main/res/values-night/yuzu_colors.xml create mode 100644 src/android/app/src/main/res/values/suyu_colors.xml delete mode 100644 src/android/app/src/main/res/values/yuzu_colors.xml diff --git a/src/android/.gitignore b/src/android/.gitignore index ff7121acd1..ef140fad38 100644 --- a/src/android/.gitignore +++ b/src/android/.gitignore @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023 yuzu Emulator Project +# SPDX-FileCopyrightText: 2023 suyu Emulator Project # SPDX-License-Identifier: GPL-3.0-or-later # Built application files diff --git a/src/android/app/build.gradle.kts b/src/android/app/build.gradle.kts index fa995aa84f..cdc8cd9c6b 100644 --- a/src/android/app/build.gradle.kts +++ b/src/android/app/build.gradle.kts @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later import android.annotation.SuppressLint @@ -25,7 +25,7 @@ val autoVersion = (((System.currentTimeMillis() / 1000) - 1451606400) / 10).toIn @Suppress("UnstableApiUsage") android { - namespace = "org.yuzu.yuzu_emu" + namespace = "org.suyu.suyu_emu" compileSdkVersion = "android-34" ndkVersion = "26.1.10909125" @@ -54,7 +54,7 @@ android { defaultConfig { // TODO If this is ever modified, change application_id in strings.xml - applicationId = "org.yuzu.yuzu_emu" + applicationId = "org.suyu.suyu_emu" minSdk = 30 targetSdk = 34 versionName = getGitVersion() @@ -103,7 +103,7 @@ android { signingConfigs.getByName("default") } - resValue("string", "app_name_suffixed", "yuzu") + resValue("string", "app_name_suffixed", "suyu") isMinifyEnabled = true isDebuggable = false proguardFiles( @@ -116,7 +116,7 @@ android { // Attaches 'debug' suffix to version and package name, allowing installation alongside the release build. register("relWithDebInfo") { isDefault = true - resValue("string", "app_name_suffixed", "yuzu Debug Release") + resValue("string", "app_name_suffixed", "suyu Debug Release") signingConfig = signingConfigs.getByName("default") isMinifyEnabled = true isDebuggable = true @@ -133,7 +133,7 @@ android { // Attaches 'debug' suffix to version and package name, allowing installation alongside the release build. debug { signingConfig = signingConfigs.getByName("default") - resValue("string", "app_name_suffixed", "yuzu Debug") + resValue("string", "app_name_suffixed", "suyu Debug") isDebuggable = true isJniDebuggable = true versionNameSuffix = "-debug" diff --git a/src/android/app/proguard-rules.pro b/src/android/app/proguard-rules.pro index 691e08fd03..8d853a1d3b 100644 --- a/src/android/app/proguard-rules.pro +++ b/src/android/app/proguard-rules.pro @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023 yuzu Emulator Project +# SPDX-FileCopyrightText: 2023 suyu Emulator Project # SPDX-License-Identifier: GPL-3.0-or-later # To get usable stack traces diff --git a/src/android/app/src/ea/res/drawable/ic_yuzu.xml b/src/android/app/src/ea/res/drawable/ic_suyu.xml similarity index 100% rename from src/android/app/src/ea/res/drawable/ic_yuzu.xml rename to src/android/app/src/ea/res/drawable/ic_suyu.xml diff --git a/src/android/app/src/ea/res/drawable/ic_yuzu_full.xml b/src/android/app/src/ea/res/drawable/ic_suyu_full.xml similarity index 100% rename from src/android/app/src/ea/res/drawable/ic_yuzu_full.xml rename to src/android/app/src/ea/res/drawable/ic_suyu_full.xml diff --git a/src/android/app/src/ea/res/drawable/ic_yuzu_title.xml b/src/android/app/src/ea/res/drawable/ic_suyu_title.xml similarity index 100% rename from src/android/app/src/ea/res/drawable/ic_yuzu_title.xml rename to src/android/app/src/ea/res/drawable/ic_suyu_title.xml diff --git a/src/android/app/src/main/AndroidManifest.xml b/src/android/app/src/main/AndroidManifest.xml index b037fc055a..02d08c00be 100644 --- a/src/android/app/src/main/AndroidManifest.xml +++ b/src/android/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ @@ -17,7 +17,7 @@ SPDX-License-Identifier: GPL-3.0-or-later + android:theme="@style/Theme.Suyu.Splash.Main"> @@ -48,13 +48,13 @@ SPDX-License-Identifier: GPL-3.0-or-later () { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/AppletAdapter.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/AppletAdapter.kt similarity index 80% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/AppletAdapter.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/adapters/AppletAdapter.kt index 41d7f72b8f..ab4651afe5 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/AppletAdapter.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/AppletAdapter.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.adapters +package org.suyu.suyu_emu.adapters import android.view.LayoutInflater import android.view.ViewGroup @@ -9,15 +9,15 @@ import android.widget.Toast import androidx.core.content.res.ResourcesCompat import androidx.fragment.app.FragmentActivity import androidx.navigation.findNavController -import org.yuzu.yuzu_emu.HomeNavigationDirections -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.databinding.CardSimpleOutlinedBinding -import org.yuzu.yuzu_emu.model.Applet -import org.yuzu.yuzu_emu.model.AppletInfo -import org.yuzu.yuzu_emu.model.Game -import org.yuzu.yuzu_emu.viewholder.AbstractViewHolder +import org.suyu.suyu_emu.HomeNavigationDirections +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.databinding.CardSimpleOutlinedBinding +import org.suyu.suyu_emu.model.Applet +import org.suyu.suyu_emu.model.AppletInfo +import org.suyu.suyu_emu.model.Game +import org.suyu.suyu_emu.viewholder.AbstractViewHolder class AppletAdapter(val activity: FragmentActivity, applets: List) : AbstractListAdapter(applets) { @@ -64,7 +64,7 @@ class AppletAdapter(val activity: FragmentActivity, applets: List) : NativeLibrary.setCurrentAppletId(applet.appletInfo.appletId) val appletGame = Game( - title = YuzuApplication.appContext.getString(applet.titleId), + title = SuyuApplication.appContext.getString(applet.titleId), path = appletPath ) val action = HomeNavigationDirections.actionGlobalEmulationActivity(appletGame) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/CabinetLauncherDialogAdapter.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/CabinetLauncherDialogAdapter.kt similarity index 74% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/CabinetLauncherDialogAdapter.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/adapters/CabinetLauncherDialogAdapter.kt index a56137148f..42d5d98b02 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/CabinetLauncherDialogAdapter.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/CabinetLauncherDialogAdapter.kt @@ -1,23 +1,23 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.adapters +package org.suyu.suyu_emu.adapters import android.view.LayoutInflater import android.view.ViewGroup import androidx.core.content.res.ResourcesCompat import androidx.fragment.app.Fragment import androidx.navigation.fragment.findNavController -import org.yuzu.yuzu_emu.HomeNavigationDirections -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.databinding.DialogListItemBinding -import org.yuzu.yuzu_emu.model.CabinetMode -import org.yuzu.yuzu_emu.adapters.CabinetLauncherDialogAdapter.CabinetModeViewHolder -import org.yuzu.yuzu_emu.model.AppletInfo -import org.yuzu.yuzu_emu.model.Game -import org.yuzu.yuzu_emu.viewholder.AbstractViewHolder +import org.suyu.suyu_emu.HomeNavigationDirections +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.databinding.DialogListItemBinding +import org.suyu.suyu_emu.model.CabinetMode +import org.suyu.suyu_emu.adapters.CabinetLauncherDialogAdapter.CabinetModeViewHolder +import org.suyu.suyu_emu.model.AppletInfo +import org.suyu.suyu_emu.model.Game +import org.suyu.suyu_emu.viewholder.AbstractViewHolder class CabinetLauncherDialogAdapter(val fragment: Fragment) : AbstractListAdapter( @@ -49,7 +49,7 @@ class CabinetLauncherDialogAdapter(val fragment: Fragment) : NativeLibrary.setCurrentAppletId(AppletInfo.Cabinet.appletId) NativeLibrary.setCabinetMode(mode.id) val appletGame = Game( - title = YuzuApplication.appContext.getString(R.string.cabinet_applet), + title = SuyuApplication.appContext.getString(R.string.cabinet_applet), path = appletPath ) val action = HomeNavigationDirections.actionGlobalEmulationActivity(appletGame) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/DriverAdapter.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/DriverAdapter.kt similarity index 80% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/DriverAdapter.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/adapters/DriverAdapter.kt index 50663ad91d..cfd5c13590 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/DriverAdapter.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/DriverAdapter.kt @@ -1,18 +1,18 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.adapters +package org.suyu.suyu_emu.adapters import android.view.LayoutInflater import android.view.ViewGroup -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.databinding.CardDriverOptionBinding -import org.yuzu.yuzu_emu.features.settings.model.StringSetting -import org.yuzu.yuzu_emu.model.Driver -import org.yuzu.yuzu_emu.model.DriverViewModel -import org.yuzu.yuzu_emu.utils.ViewUtils.marquee -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible -import org.yuzu.yuzu_emu.viewholder.AbstractViewHolder +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.databinding.CardDriverOptionBinding +import org.suyu.suyu_emu.features.settings.model.StringSetting +import org.suyu.suyu_emu.model.Driver +import org.suyu.suyu_emu.model.DriverViewModel +import org.suyu.suyu_emu.utils.ViewUtils.marquee +import org.suyu.suyu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.viewholder.AbstractViewHolder class DriverAdapter(private val driverViewModel: DriverViewModel) : AbstractSingleSelectionList( diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/FolderAdapter.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/FolderAdapter.kt similarity index 77% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/FolderAdapter.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/adapters/FolderAdapter.kt index 5cbd15d2ac..30762b765e 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/FolderAdapter.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/FolderAdapter.kt @@ -1,18 +1,18 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.adapters +package org.suyu.suyu_emu.adapters import android.net.Uri import android.view.LayoutInflater import android.view.ViewGroup import androidx.fragment.app.FragmentActivity -import org.yuzu.yuzu_emu.databinding.CardFolderBinding -import org.yuzu.yuzu_emu.fragments.GameFolderPropertiesDialogFragment -import org.yuzu.yuzu_emu.model.GameDir -import org.yuzu.yuzu_emu.model.GamesViewModel -import org.yuzu.yuzu_emu.utils.ViewUtils.marquee -import org.yuzu.yuzu_emu.viewholder.AbstractViewHolder +import org.suyu.suyu_emu.databinding.CardFolderBinding +import org.suyu.suyu_emu.fragments.GameFolderPropertiesDialogFragment +import org.suyu.suyu_emu.model.GameDir +import org.suyu.suyu_emu.model.GamesViewModel +import org.suyu.suyu_emu.utils.ViewUtils.marquee +import org.suyu.suyu_emu.viewholder.AbstractViewHolder class FolderAdapter(val activity: FragmentActivity, val gamesViewModel: GamesViewModel) : AbstractDiffAdapter() { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/GameAdapter.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/GameAdapter.kt similarity index 79% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/GameAdapter.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/adapters/GameAdapter.kt index b1f247ac36..bf58a1499f 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/GameAdapter.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/GameAdapter.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.adapters +package org.suyu.suyu_emu.adapters import android.net.Uri import android.view.LayoutInflater @@ -19,15 +19,15 @@ import androidx.preference.PreferenceManager import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -import org.yuzu.yuzu_emu.HomeNavigationDirections -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.databinding.CardGameBinding -import org.yuzu.yuzu_emu.model.Game -import org.yuzu.yuzu_emu.model.GamesViewModel -import org.yuzu.yuzu_emu.utils.GameIconUtils -import org.yuzu.yuzu_emu.utils.ViewUtils.marquee -import org.yuzu.yuzu_emu.viewholder.AbstractViewHolder +import org.suyu.suyu_emu.HomeNavigationDirections +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.databinding.CardGameBinding +import org.suyu.suyu_emu.model.Game +import org.suyu.suyu_emu.model.GamesViewModel +import org.suyu.suyu_emu.utils.GameIconUtils +import org.suyu.suyu_emu.utils.ViewUtils.marquee +import org.suyu.suyu_emu.viewholder.AbstractViewHolder class GameAdapter(private val activity: AppCompatActivity) : AbstractDiffAdapter(exact = false) { @@ -51,12 +51,12 @@ class GameAdapter(private val activity: AppCompatActivity) : fun onClick(game: Game) { val gameExists = DocumentFile.fromSingleUri( - YuzuApplication.appContext, + SuyuApplication.appContext, Uri.parse(game.path) )?.exists() == true if (!gameExists) { Toast.makeText( - YuzuApplication.appContext, + SuyuApplication.appContext, R.string.loader_error_file_not_found, Toast.LENGTH_LONG ).show() @@ -66,7 +66,7 @@ class GameAdapter(private val activity: AppCompatActivity) : } val preferences = - PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext) + PreferenceManager.getDefaultSharedPreferences(SuyuApplication.appContext) preferences.edit() .putLong( game.keyLastPlayedTime, @@ -77,12 +77,12 @@ class GameAdapter(private val activity: AppCompatActivity) : activity.lifecycleScope.launch { withContext(Dispatchers.IO) { val shortcut = - ShortcutInfoCompat.Builder(YuzuApplication.appContext, game.path) + ShortcutInfoCompat.Builder(SuyuApplication.appContext, game.path) .setShortLabel(game.title) .setIcon(GameIconUtils.getShortcutIcon(activity, game)) .setIntent(game.launchIntent) .build() - ShortcutManagerCompat.pushDynamicShortcut(YuzuApplication.appContext, shortcut) + ShortcutManagerCompat.pushDynamicShortcut(SuyuApplication.appContext, shortcut) } } diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/GamePropertiesAdapter.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/GamePropertiesAdapter.kt similarity index 87% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/GamePropertiesAdapter.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/adapters/GamePropertiesAdapter.kt index 7366e2c778..8286711df5 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/GamePropertiesAdapter.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/GamePropertiesAdapter.kt @@ -1,21 +1,21 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.adapters +package org.suyu.suyu_emu.adapters import android.view.LayoutInflater import android.view.ViewGroup import androidx.core.content.res.ResourcesCompat import androidx.lifecycle.LifecycleOwner -import org.yuzu.yuzu_emu.databinding.CardInstallableIconBinding -import org.yuzu.yuzu_emu.databinding.CardSimpleOutlinedBinding -import org.yuzu.yuzu_emu.model.GameProperty -import org.yuzu.yuzu_emu.model.InstallableProperty -import org.yuzu.yuzu_emu.model.SubmenuProperty -import org.yuzu.yuzu_emu.utils.ViewUtils.marquee -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible -import org.yuzu.yuzu_emu.utils.collect -import org.yuzu.yuzu_emu.viewholder.AbstractViewHolder +import org.suyu.suyu_emu.databinding.CardInstallableIconBinding +import org.suyu.suyu_emu.databinding.CardSimpleOutlinedBinding +import org.suyu.suyu_emu.model.GameProperty +import org.suyu.suyu_emu.model.InstallableProperty +import org.suyu.suyu_emu.model.SubmenuProperty +import org.suyu.suyu_emu.utils.ViewUtils.marquee +import org.suyu.suyu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.utils.collect +import org.suyu.suyu_emu.viewholder.AbstractViewHolder class GamePropertiesAdapter( private val viewLifecycle: LifecycleOwner, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/HomeSettingAdapter.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/HomeSettingAdapter.kt similarity index 85% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/HomeSettingAdapter.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/adapters/HomeSettingAdapter.kt index 0bd196673c..2544ea1571 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/HomeSettingAdapter.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/HomeSettingAdapter.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.adapters +package org.suyu.suyu_emu.adapters import android.view.LayoutInflater import android.view.ViewGroup @@ -9,14 +9,14 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import androidx.core.content.res.ResourcesCompat import androidx.lifecycle.LifecycleOwner -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.databinding.CardHomeOptionBinding -import org.yuzu.yuzu_emu.fragments.MessageDialogFragment -import org.yuzu.yuzu_emu.model.HomeSetting -import org.yuzu.yuzu_emu.utils.ViewUtils.marquee -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible -import org.yuzu.yuzu_emu.utils.collect -import org.yuzu.yuzu_emu.viewholder.AbstractViewHolder +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.databinding.CardHomeOptionBinding +import org.suyu.suyu_emu.fragments.MessageDialogFragment +import org.suyu.suyu_emu.model.HomeSetting +import org.suyu.suyu_emu.utils.ViewUtils.marquee +import org.suyu.suyu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.utils.collect +import org.suyu.suyu_emu.viewholder.AbstractViewHolder class HomeSettingAdapter( private val activity: AppCompatActivity, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/InstallableAdapter.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/InstallableAdapter.kt similarity index 79% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/InstallableAdapter.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/adapters/InstallableAdapter.kt index 1ba75fa2fd..22063447d9 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/InstallableAdapter.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/InstallableAdapter.kt @@ -1,14 +1,14 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.adapters +package org.suyu.suyu_emu.adapters import android.view.LayoutInflater import android.view.ViewGroup -import org.yuzu.yuzu_emu.databinding.CardInstallableBinding -import org.yuzu.yuzu_emu.model.Installable -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible -import org.yuzu.yuzu_emu.viewholder.AbstractViewHolder +import org.suyu.suyu_emu.databinding.CardInstallableBinding +import org.suyu.suyu_emu.model.Installable +import org.suyu.suyu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.viewholder.AbstractViewHolder class InstallableAdapter(installables: List) : AbstractListAdapter(installables) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/LicenseAdapter.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/LicenseAdapter.kt similarity index 78% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/LicenseAdapter.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/adapters/LicenseAdapter.kt index 1379968f95..5ddd98cda3 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/LicenseAdapter.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/LicenseAdapter.kt @@ -1,16 +1,16 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.adapters +package org.suyu.suyu_emu.adapters import android.view.LayoutInflater import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity -import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding -import org.yuzu.yuzu_emu.fragments.LicenseBottomSheetDialogFragment -import org.yuzu.yuzu_emu.model.License -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible -import org.yuzu.yuzu_emu.viewholder.AbstractViewHolder +import org.suyu.suyu_emu.databinding.ListItemSettingBinding +import org.suyu.suyu_emu.fragments.LicenseBottomSheetDialogFragment +import org.suyu.suyu_emu.model.License +import org.suyu.suyu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.viewholder.AbstractViewHolder class LicenseAdapter(private val activity: AppCompatActivity, licenses: List) : AbstractListAdapter(licenses) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/SetupAdapter.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/SetupAdapter.kt similarity index 84% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/SetupAdapter.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/adapters/SetupAdapter.kt index a5f610b317..c6b96cb2f9 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/SetupAdapter.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/adapters/SetupAdapter.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.adapters +package org.suyu.suyu_emu.adapters import android.text.Html import android.view.LayoutInflater @@ -10,14 +10,14 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.content.res.ResourcesCompat import androidx.lifecycle.ViewModelProvider import com.google.android.material.button.MaterialButton -import org.yuzu.yuzu_emu.databinding.PageSetupBinding -import org.yuzu.yuzu_emu.model.HomeViewModel -import org.yuzu.yuzu_emu.model.SetupCallback -import org.yuzu.yuzu_emu.model.SetupPage -import org.yuzu.yuzu_emu.model.StepState -import org.yuzu.yuzu_emu.utils.ViewUtils -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible -import org.yuzu.yuzu_emu.viewholder.AbstractViewHolder +import org.suyu.suyu_emu.databinding.PageSetupBinding +import org.suyu.suyu_emu.model.HomeViewModel +import org.suyu.suyu_emu.model.SetupCallback +import org.suyu.suyu_emu.model.SetupPage +import org.suyu.suyu_emu.model.StepState +import org.suyu.suyu_emu.utils.ViewUtils +import org.suyu.suyu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.viewholder.AbstractViewHolder class SetupAdapter(val activity: AppCompatActivity, pages: List) : AbstractListAdapter(pages) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/applets/keyboard/SoftwareKeyboard.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/applets/keyboard/SoftwareKeyboard.kt similarity index 94% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/applets/keyboard/SoftwareKeyboard.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/applets/keyboard/SoftwareKeyboard.kt index e058067c97..786fb5d936 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/applets/keyboard/SoftwareKeyboard.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/applets/keyboard/SoftwareKeyboard.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: Copyright 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.applets.keyboard +package org.suyu.suyu_emu.applets.keyboard import android.content.Context import android.os.Handler @@ -13,9 +13,9 @@ import android.view.inputmethod.InputMethodManager import androidx.annotation.Keep import androidx.core.view.ViewCompat import java.io.Serializable -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.applets.keyboard.ui.KeyboardDialogFragment +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.applets.keyboard.ui.KeyboardDialogFragment @Keep object SoftwareKeyboard { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/applets/keyboard/ui/KeyboardDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/applets/keyboard/ui/KeyboardDialogFragment.kt similarity index 90% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/applets/keyboard/ui/KeyboardDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/applets/keyboard/ui/KeyboardDialogFragment.kt index 607a3d506e..c89f7b035d 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/applets/keyboard/ui/KeyboardDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/applets/keyboard/ui/KeyboardDialogFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: Copyright 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.applets.keyboard.ui +package org.suyu.suyu_emu.applets.keyboard.ui import android.app.Dialog import android.content.DialogInterface @@ -10,11 +10,11 @@ import android.text.InputFilter import android.text.InputType import androidx.fragment.app.DialogFragment import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.applets.keyboard.SoftwareKeyboard -import org.yuzu.yuzu_emu.applets.keyboard.SoftwareKeyboard.KeyboardConfig -import org.yuzu.yuzu_emu.databinding.DialogEditTextBinding -import org.yuzu.yuzu_emu.utils.SerializableHelper.serializable +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.applets.keyboard.SoftwareKeyboard +import org.suyu.suyu_emu.applets.keyboard.SoftwareKeyboard.KeyboardConfig +import org.suyu.suyu_emu.databinding.DialogEditTextBinding +import org.suyu.suyu_emu.utils.SerializableHelper.serializable class KeyboardDialogFragment : DialogFragment() { private lateinit var binding: DialogEditTextBinding diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/disk_shader_cache/DiskShaderCacheProgress.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/disk_shader_cache/DiskShaderCacheProgress.kt similarity index 81% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/disk_shader_cache/DiskShaderCacheProgress.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/disk_shader_cache/DiskShaderCacheProgress.kt index 6f4b5b13fd..548a1bf947 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/disk_shader_cache/DiskShaderCacheProgress.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/disk_shader_cache/DiskShaderCacheProgress.kt @@ -1,15 +1,15 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.disk_shader_cache +package org.suyu.suyu_emu.disk_shader_cache import androidx.annotation.Keep import androidx.lifecycle.ViewModelProvider -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.activities.EmulationActivity -import org.yuzu.yuzu_emu.model.EmulationViewModel -import org.yuzu.yuzu_emu.utils.Log +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.activities.EmulationActivity +import org.suyu.suyu_emu.model.EmulationViewModel +import org.suyu.suyu_emu.utils.Log @Keep object DiskShaderCacheProgress { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/DocumentProvider.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/DocumentProvider.kt similarity index 97% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/DocumentProvider.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/DocumentProvider.kt index f3be156b5e..47497520c0 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/DocumentProvider.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/DocumentProvider.kt @@ -1,10 +1,10 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: MPL-2.0 // Copyright © 2023 Skyline Team and Contributors (https://github.com/skyline-emu/) -package org.yuzu.yuzu_emu.features +package org.suyu.suyu_emu.features import android.database.Cursor import android.database.MatrixCursor @@ -14,14 +14,14 @@ import android.provider.DocumentsContract import android.provider.DocumentsProvider import android.webkit.MimeTypeMap import java.io.* -import org.yuzu.yuzu_emu.BuildConfig -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.getPublicFilesDir +import org.suyu.suyu_emu.BuildConfig +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.getPublicFilesDir class DocumentProvider : DocumentsProvider() { private val baseDirectory: File - get() = File(YuzuApplication.application.getPublicFilesDir().canonicalPath) + get() = File(SuyuApplication.application.getPublicFilesDir().canonicalPath) companion object { private val DEFAULT_ROOT_PROJECTION: Array = arrayOf( @@ -91,7 +91,7 @@ class DocumentProvider : DocumentsProvider() { add(DocumentsContract.Root.COLUMN_DOCUMENT_ID, getDocumentId(baseDirectory)) add(DocumentsContract.Root.COLUMN_MIME_TYPES, "*/*") add(DocumentsContract.Root.COLUMN_AVAILABLE_BYTES, baseDirectory.freeSpace) - add(DocumentsContract.Root.COLUMN_ICON, R.drawable.ic_yuzu) + add(DocumentsContract.Root.COLUMN_ICON, R.drawable.ic_suyu) } return cursor @@ -288,7 +288,7 @@ class DocumentProvider : DocumentsProvider() { add(DocumentsContract.Document.COLUMN_LAST_MODIFIED, localFile.lastModified()) add(DocumentsContract.Document.COLUMN_FLAGS, flags) if (localFile == baseDirectory) { - add(DocumentsContract.Root.COLUMN_ICON, R.drawable.ic_yuzu) + add(DocumentsContract.Root.COLUMN_ICON, R.drawable.ic_suyu) } } diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/NativeInput.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/NativeInput.kt similarity index 96% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/NativeInput.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/input/NativeInput.kt index 15d7763114..0edb7fc453 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/NativeInput.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/NativeInput.kt @@ -1,15 +1,15 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.input +package org.suyu.suyu_emu.features.input -import org.yuzu.yuzu_emu.features.input.model.NativeButton -import org.yuzu.yuzu_emu.features.input.model.NativeAnalog -import org.yuzu.yuzu_emu.features.input.model.InputType -import org.yuzu.yuzu_emu.features.input.model.ButtonName -import org.yuzu.yuzu_emu.features.input.model.NpadStyleIndex -import org.yuzu.yuzu_emu.utils.NativeConfig -import org.yuzu.yuzu_emu.utils.ParamPackage +import org.suyu.suyu_emu.features.input.model.NativeButton +import org.suyu.suyu_emu.features.input.model.NativeAnalog +import org.suyu.suyu_emu.features.input.model.InputType +import org.suyu.suyu_emu.features.input.model.ButtonName +import org.suyu.suyu_emu.features.input.model.NpadStyleIndex +import org.suyu.suyu_emu.utils.NativeConfig +import org.suyu.suyu_emu.utils.ParamPackage import android.view.InputDevice object NativeInput { @@ -177,9 +177,9 @@ object NativeInput { /** * Registers a controller to be used with mapping - * @param device An [InputDevice] or the input overlay wrapped with [YuzuInputDevice] + * @param device An [InputDevice] or the input overlay wrapped with [SuyuInputDevice] */ - external fun registerController(device: YuzuInputDevice) + external fun registerController(device: SuyuInputDevice) /** * Gets the names of input devices that have been registered with the input subsystem via [registerController] diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/YuzuInputDevice.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/SuyuInputDevice.kt similarity index 75% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/YuzuInputDevice.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/input/SuyuInputDevice.kt index 15cc38c7f5..6f9b1cd374 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/YuzuInputDevice.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/SuyuInputDevice.kt @@ -1,16 +1,16 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.input +package org.suyu.suyu_emu.features.input import android.view.InputDevice import androidx.annotation.Keep -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.utils.InputHandler.getGUID +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.utils.InputHandler.getGUID @Keep -interface YuzuInputDevice { +interface SuyuInputDevice { fun getName(): String fun getGUID(): String @@ -25,15 +25,15 @@ interface YuzuInputDevice { fun hasKeys(keys: IntArray): BooleanArray = BooleanArray(0) } -class YuzuPhysicalDevice( +class SuyuPhysicalDevice( private val device: InputDevice, private val port: Int, useSystemVibrator: Boolean -) : YuzuInputDevice { +) : SuyuInputDevice { private val vibrator = if (useSystemVibrator) { - YuzuVibrator.getSystemVibrator() + SuyuVibrator.getSystemVibrator() } else { - YuzuVibrator.getControllerVibrator(device) + SuyuVibrator.getControllerVibrator(device) } override fun getName(): String { @@ -60,14 +60,14 @@ class YuzuPhysicalDevice( override fun hasKeys(keys: IntArray): BooleanArray = device.hasKeys(*keys) } -class YuzuInputOverlayDevice( +class SuyuInputOverlayDevice( private val vibration: Boolean, private val port: Int -) : YuzuInputDevice { - private val vibrator = YuzuVibrator.getSystemVibrator() +) : SuyuInputDevice { + private val vibrator = SuyuVibrator.getSystemVibrator() override fun getName(): String { - return YuzuApplication.appContext.getString(R.string.input_overlay) + return SuyuApplication.appContext.getString(R.string.input_overlay) } override fun getGUID(): String { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/YuzuVibrator.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/SuyuVibrator.kt similarity index 64% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/YuzuVibrator.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/input/SuyuVibrator.kt index aac49ecae3..d6e5baaf87 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/YuzuVibrator.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/SuyuVibrator.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.input +package org.suyu.suyu_emu.features.input import android.content.Context import android.os.Build @@ -12,32 +12,32 @@ import android.os.VibratorManager import android.view.InputDevice import androidx.annotation.Keep import androidx.annotation.RequiresApi -import org.yuzu.yuzu_emu.YuzuApplication +import org.suyu.suyu_emu.SuyuApplication @Keep @Suppress("DEPRECATION") -interface YuzuVibrator { +interface SuyuVibrator { fun supportsVibration(): Boolean fun vibrate(intensity: Float) companion object { - fun getControllerVibrator(device: InputDevice): YuzuVibrator = + fun getControllerVibrator(device: InputDevice): SuyuVibrator = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { - YuzuVibratorManager(device.vibratorManager) + SuyuVibratorManager(device.vibratorManager) } else { - YuzuVibratorManagerCompat(device.vibrator) + SuyuVibratorManagerCompat(device.vibrator) } - fun getSystemVibrator(): YuzuVibrator = + fun getSystemVibrator(): SuyuVibrator = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { - val vibratorManager = YuzuApplication.appContext + val vibratorManager = SuyuApplication.appContext .getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager - YuzuVibratorManager(vibratorManager) + SuyuVibratorManager(vibratorManager) } else { - val vibrator = YuzuApplication.appContext + val vibrator = SuyuApplication.appContext .getSystemService(Context.VIBRATOR_SERVICE) as Vibrator - YuzuVibratorManagerCompat(vibrator) + SuyuVibratorManagerCompat(vibrator) } fun getVibrationEffect(intensity: Float): VibrationEffect? { @@ -53,24 +53,24 @@ interface YuzuVibrator { } @RequiresApi(Build.VERSION_CODES.S) -class YuzuVibratorManager(private val vibratorManager: VibratorManager) : YuzuVibrator { +class SuyuVibratorManager(private val vibratorManager: VibratorManager) : SuyuVibrator { override fun supportsVibration(): Boolean { return vibratorManager.vibratorIds.isNotEmpty() } override fun vibrate(intensity: Float) { - val vibration = YuzuVibrator.getVibrationEffect(intensity) ?: return + val vibration = SuyuVibrator.getVibrationEffect(intensity) ?: return vibratorManager.vibrate(CombinedVibration.createParallel(vibration)) } } -class YuzuVibratorManagerCompat(private val vibrator: Vibrator) : YuzuVibrator { +class SuyuVibratorManagerCompat(private val vibrator: Vibrator) : SuyuVibrator { override fun supportsVibration(): Boolean { return vibrator.hasVibrator() } override fun vibrate(intensity: Float) { - val vibration = YuzuVibrator.getVibrationEffect(intensity) ?: return + val vibration = SuyuVibrator.getVibrationEffect(intensity) ?: return vibrator.vibrate(vibration) } } diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/AnalogDirection.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/AnalogDirection.kt similarity index 65% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/AnalogDirection.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/AnalogDirection.kt index 0a5fab2ae5..60b0f97658 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/AnalogDirection.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/AnalogDirection.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.input.model +package org.suyu.suyu_emu.features.input.model enum class AnalogDirection(val int: Int, val param: String) { Up(0, "up"), diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/ButtonName.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/ButtonName.kt similarity index 81% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/ButtonName.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/ButtonName.kt index b8846ecad9..b33a973665 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/ButtonName.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/ButtonName.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.input.model +package org.suyu.suyu_emu.features.input.model // Loosely matches the enum in common/input.h enum class ButtonName(val int: Int) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/InputType.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/InputType.kt similarity index 68% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/InputType.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/InputType.kt index f725231cb8..b33e3f3c2f 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/InputType.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/InputType.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.input.model +package org.suyu.suyu_emu.features.input.model // Must match the corresponding enum in input_common/main.h enum class InputType(val int: Int) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/NativeAnalog.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/NativeAnalog.kt similarity index 74% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/NativeAnalog.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/NativeAnalog.kt index c3b7a785d0..5ba3fe846f 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/NativeAnalog.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/NativeAnalog.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.input.model +package org.suyu.suyu_emu.features.input.model // Must match enum in src/common/settings_input.h enum class NativeAnalog(val int: Int) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/NativeButton.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/NativeButton.kt similarity index 84% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/NativeButton.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/NativeButton.kt index c5ccd7115b..24ae9b8b70 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/NativeButton.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/NativeButton.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.input.model +package org.suyu.suyu_emu.features.input.model // Must match enum in src/common/settings_input.h enum class NativeButton(val int: Int) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/NativeTrigger.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/NativeTrigger.kt similarity index 63% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/NativeTrigger.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/NativeTrigger.kt index 625f352b4c..d25f6cb756 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/NativeTrigger.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/NativeTrigger.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.input.model +package org.suyu.suyu_emu.features.input.model // Must match enum in src/common/settings_input.h enum class NativeTrigger(val int: Int) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/NpadStyleIndex.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/NpadStyleIndex.kt similarity index 84% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/NpadStyleIndex.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/NpadStyleIndex.kt index e2a3d7aff0..3c6ed84318 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/NpadStyleIndex.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/NpadStyleIndex.kt @@ -1,10 +1,10 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.input.model +package org.suyu.suyu_emu.features.input.model import androidx.annotation.StringRes -import org.yuzu.yuzu_emu.R +import org.suyu.suyu_emu.R // Must match enum in src/core/hid/hid_types.h enum class NpadStyleIndex(val int: Int, @StringRes val nameId: Int = 0) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/PlayerInput.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/PlayerInput.kt similarity index 96% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/PlayerInput.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/PlayerInput.kt index a84ac77a22..b2f291017a 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/input/model/PlayerInput.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/input/model/PlayerInput.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.input.model +package org.suyu.suyu_emu.features.input.model import androidx.annotation.Keep diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractBooleanSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractBooleanSetting.kt similarity index 65% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractBooleanSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractBooleanSetting.kt index 0ba4653562..a110cb6a55 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractBooleanSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractBooleanSetting.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model +package org.suyu.suyu_emu.features.settings.model interface AbstractBooleanSetting : AbstractSetting { fun getBoolean(needsGlobal: Boolean = false): Boolean diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractByteSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractByteSetting.kt similarity index 63% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractByteSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractByteSetting.kt index cf63005359..13a4076c32 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractByteSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractByteSetting.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model +package org.suyu.suyu_emu.features.settings.model interface AbstractByteSetting : AbstractSetting { fun getByte(needsGlobal: Boolean = false): Byte diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractFloatSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractFloatSetting.kt similarity index 64% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractFloatSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractFloatSetting.kt index c6c0bcf348..2af7b8d3a2 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractFloatSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractFloatSetting.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model +package org.suyu.suyu_emu.features.settings.model interface AbstractFloatSetting : AbstractSetting { fun getFloat(needsGlobal: Boolean = false): Float diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractIntSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractIntSetting.kt similarity index 62% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractIntSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractIntSetting.kt index 826402c343..625cf78dc1 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractIntSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractIntSetting.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model +package org.suyu.suyu_emu.features.settings.model interface AbstractIntSetting : AbstractSetting { fun getInt(needsGlobal: Boolean = false): Int diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractLongSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractLongSetting.kt similarity index 63% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractLongSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractLongSetting.kt index 2b62cc06b5..54b29dd62a 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractLongSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractLongSetting.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model +package org.suyu.suyu_emu.features.settings.model interface AbstractLongSetting : AbstractSetting { fun getLong(needsGlobal: Boolean = false): Long diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractSetting.kt similarity index 81% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractSetting.kt index 3b78c7cf0c..201be29a2e 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractSetting.kt @@ -1,9 +1,9 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model +package org.suyu.suyu_emu.features.settings.model -import org.yuzu.yuzu_emu.utils.NativeConfig +import org.suyu.suyu_emu.utils.NativeConfig interface AbstractSetting { val key: String diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractShortSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractShortSetting.kt similarity index 64% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractShortSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractShortSetting.kt index 8bfa81e4ac..559123c1d7 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractShortSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractShortSetting.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model +package org.suyu.suyu_emu.features.settings.model interface AbstractShortSetting : AbstractSetting { fun getShort(needsGlobal: Boolean = false): Short diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractStringSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractStringSetting.kt similarity index 64% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractStringSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractStringSetting.kt index 6ff8fd3f9a..9342e5cf1e 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/AbstractStringSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/AbstractStringSetting.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model +package org.suyu.suyu_emu.features.settings.model interface AbstractStringSetting : AbstractSetting { fun getString(needsGlobal: Boolean = false): String 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/suyu/suyu_emu/features/settings/model/BooleanSetting.kt similarity index 91% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/BooleanSetting.kt index 6644784729..1157ca5677 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/suyu/suyu_emu/features/settings/model/BooleanSetting.kt @@ -1,9 +1,9 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model +package org.suyu.suyu_emu.features.settings.model -import org.yuzu.yuzu_emu.utils.NativeConfig +import org.suyu.suyu_emu.utils.NativeConfig enum class BooleanSetting(override val key: String) : AbstractBooleanSetting { AUDIO_MUTED("audio_muted"), diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/ByteSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/ByteSetting.kt similarity index 82% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/ByteSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/ByteSetting.kt index 7b7fac2112..6c9c9d1c5a 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/ByteSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/ByteSetting.kt @@ -1,9 +1,9 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model +package org.suyu.suyu_emu.features.settings.model -import org.yuzu.yuzu_emu.utils.NativeConfig +import org.suyu.suyu_emu.utils.NativeConfig enum class ByteSetting(override val key: String) : AbstractByteSetting { AUDIO_VOLUME("volume"); diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/FloatSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/FloatSetting.kt similarity index 83% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/FloatSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/FloatSetting.kt index 4644824d8a..0dc40e45b4 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/FloatSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/FloatSetting.kt @@ -1,9 +1,9 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model +package org.suyu.suyu_emu.features.settings.model -import org.yuzu.yuzu_emu.utils.NativeConfig +import org.suyu.suyu_emu.utils.NativeConfig enum class FloatSetting(override val key: String) : AbstractFloatSetting { // No float settings currently exist diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/IntSetting.kt similarity index 90% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/IntSetting.kt index 0165cb2d1d..9aa5be3d77 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/IntSetting.kt @@ -1,9 +1,9 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model +package org.suyu.suyu_emu.features.settings.model -import org.yuzu.yuzu_emu.utils.NativeConfig +import org.suyu.suyu_emu.utils.NativeConfig enum class IntSetting(override val key: String) : AbstractIntSetting { CPU_BACKEND("cpu_backend"), diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/LongSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/LongSetting.kt similarity index 82% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/LongSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/LongSetting.kt index e3efd516c0..41e8451772 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/LongSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/LongSetting.kt @@ -1,9 +1,9 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model +package org.suyu.suyu_emu.features.settings.model -import org.yuzu.yuzu_emu.utils.NativeConfig +import org.suyu.suyu_emu.utils.NativeConfig enum class LongSetting(override val key: String) : AbstractLongSetting { CUSTOM_RTC("custom_rtc"); diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/Settings.kt similarity index 94% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/Settings.kt index 4f6b93bd2e..24cd36563e 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/Settings.kt @@ -1,10 +1,10 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model +package org.suyu.suyu_emu.features.settings.model -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication object Settings { enum class MenuTag(val titleId: Int = 0) { @@ -26,7 +26,7 @@ object Settings { } fun getPlayerString(player: Int): String = - YuzuApplication.appContext.getString(R.string.preferences_player, player) + SuyuApplication.appContext.getString(R.string.preferences_player, player) const val PREF_FIRST_APP_LAUNCH = "FirstApplicationLaunch" const val PREF_MEMORY_WARNING_SHOWN = "MemoryWarningShown" diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/ShortSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/ShortSetting.kt similarity index 82% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/ShortSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/ShortSetting.kt index 16eb4ffdd5..523b0347f1 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/ShortSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/ShortSetting.kt @@ -1,9 +1,9 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model +package org.suyu.suyu_emu.features.settings.model -import org.yuzu.yuzu_emu.utils.NativeConfig +import org.suyu.suyu_emu.utils.NativeConfig enum class ShortSetting(override val key: String) : AbstractShortSetting { RENDERER_SPEED_LIMIT("speed_limit"); diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/StringSetting.kt similarity index 83% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/StringSetting.kt index 6f16cf5b19..90fe4abf40 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/StringSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/StringSetting.kt @@ -1,9 +1,9 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model +package org.suyu.suyu_emu.features.settings.model -import org.yuzu.yuzu_emu.utils.NativeConfig +import org.suyu.suyu_emu.utils.NativeConfig enum class StringSetting(override val key: String) : AbstractStringSetting { DRIVER_PATH("driver_path"), diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/AnalogInputSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/AnalogInputSetting.kt similarity index 66% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/AnalogInputSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/AnalogInputSetting.kt index a2996725ef..2479306a4d 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/AnalogInputSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/AnalogInputSetting.kt @@ -1,14 +1,14 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model.view +package org.suyu.suyu_emu.features.settings.model.view import androidx.annotation.StringRes -import org.yuzu.yuzu_emu.features.input.NativeInput -import org.yuzu.yuzu_emu.features.input.model.AnalogDirection -import org.yuzu.yuzu_emu.features.input.model.InputType -import org.yuzu.yuzu_emu.features.input.model.NativeAnalog -import org.yuzu.yuzu_emu.utils.ParamPackage +import org.suyu.suyu_emu.features.input.NativeInput +import org.suyu.suyu_emu.features.input.model.AnalogDirection +import org.suyu.suyu_emu.features.input.model.InputType +import org.suyu.suyu_emu.features.input.model.NativeAnalog +import org.suyu.suyu_emu.utils.ParamPackage class AnalogInputSetting( override val playerIndex: Int, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/ButtonInputSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/ButtonInputSetting.kt similarity index 69% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/ButtonInputSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/ButtonInputSetting.kt index 786d09a7a2..32bb6ef570 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/ButtonInputSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/ButtonInputSetting.kt @@ -1,13 +1,13 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model.view +package org.suyu.suyu_emu.features.settings.model.view import androidx.annotation.StringRes -import org.yuzu.yuzu_emu.utils.ParamPackage -import org.yuzu.yuzu_emu.features.input.NativeInput -import org.yuzu.yuzu_emu.features.input.model.InputType -import org.yuzu.yuzu_emu.features.input.model.NativeButton +import org.suyu.suyu_emu.utils.ParamPackage +import org.suyu.suyu_emu.features.input.NativeInput +import org.suyu.suyu_emu.features.input.model.InputType +import org.suyu.suyu_emu.features.input.model.NativeButton class ButtonInputSetting( override val playerIndex: Int, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/DateTimeSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/DateTimeSetting.kt similarity index 77% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/DateTimeSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/DateTimeSetting.kt index 58febff1db..e54cd679ef 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/DateTimeSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/DateTimeSetting.kt @@ -1,10 +1,10 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model.view +package org.suyu.suyu_emu.features.settings.model.view import androidx.annotation.StringRes -import org.yuzu.yuzu_emu.features.settings.model.AbstractLongSetting +import org.suyu.suyu_emu.features.settings.model.AbstractLongSetting class DateTimeSetting( private val longSetting: AbstractLongSetting, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/HeaderSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/HeaderSetting.kt similarity index 71% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/HeaderSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/HeaderSetting.kt index 8a6a51d5c4..91221326ed 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/HeaderSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/HeaderSetting.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model.view +package org.suyu.suyu_emu.features.settings.model.view import androidx.annotation.StringRes diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/InputProfileSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/InputProfileSetting.kt similarity index 80% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/InputProfileSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/InputProfileSetting.kt index c46de08c55..abe1b5513d 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/InputProfileSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/InputProfileSetting.kt @@ -1,11 +1,11 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model.view +package org.suyu.suyu_emu.features.settings.model.view -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.features.input.NativeInput -import org.yuzu.yuzu_emu.utils.NativeConfig +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.features.input.NativeInput +import org.suyu.suyu_emu.utils.NativeConfig class InputProfileSetting(private val playerIndex: Int) : SettingsItem(emptySetting, R.string.profile, "", 0, "") { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/InputSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/InputSetting.kt similarity index 90% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/InputSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/InputSetting.kt index 2d118bff39..0c45b1ca82 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/InputSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/InputSetting.kt @@ -1,15 +1,15 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model.view +package org.suyu.suyu_emu.features.settings.model.view import androidx.annotation.StringRes -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.features.input.NativeInput -import org.yuzu.yuzu_emu.features.input.model.ButtonName -import org.yuzu.yuzu_emu.features.input.model.InputType -import org.yuzu.yuzu_emu.utils.ParamPackage +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.features.input.NativeInput +import org.suyu.suyu_emu.features.input.model.ButtonName +import org.suyu.suyu_emu.features.input.model.InputType +import org.suyu.suyu_emu.utils.ParamPackage sealed class InputSetting( @StringRes titleId: Int, @@ -19,7 +19,7 @@ sealed class InputSetting( abstract val inputType: InputType abstract val playerIndex: Int - protected val context get() = YuzuApplication.appContext + protected val context get() = SuyuApplication.appContext abstract fun getSelectedValue(): String diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/IntSingleChoiceSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/IntSingleChoiceSetting.kt similarity index 86% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/IntSingleChoiceSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/IntSingleChoiceSetting.kt index e024c793a7..9d7d04cf3f 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/IntSingleChoiceSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/IntSingleChoiceSetting.kt @@ -1,10 +1,10 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model.view +package org.suyu.suyu_emu.features.settings.model.view import androidx.annotation.StringRes -import org.yuzu.yuzu_emu.features.settings.model.AbstractIntSetting +import org.suyu.suyu_emu.features.settings.model.AbstractIntSetting class IntSingleChoiceSetting( private val intSetting: AbstractIntSetting, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/ModifierInputSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/ModifierInputSetting.kt similarity index 72% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/ModifierInputSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/ModifierInputSetting.kt index a1db3cc874..3d64b5e785 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/ModifierInputSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/ModifierInputSetting.kt @@ -1,13 +1,13 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model.view +package org.suyu.suyu_emu.features.settings.model.view import androidx.annotation.StringRes -import org.yuzu.yuzu_emu.features.input.NativeInput -import org.yuzu.yuzu_emu.features.input.model.InputType -import org.yuzu.yuzu_emu.features.input.model.NativeAnalog -import org.yuzu.yuzu_emu.utils.ParamPackage +import org.suyu.suyu_emu.features.input.NativeInput +import org.suyu.suyu_emu.features.input.model.InputType +import org.suyu.suyu_emu.features.input.model.NativeAnalog +import org.suyu.suyu_emu.utils.ParamPackage class ModifierInputSetting( override val playerIndex: Int, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/RunnableSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/RunnableSetting.kt similarity index 82% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/RunnableSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/RunnableSetting.kt index 06f607424e..900c44116c 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/RunnableSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/RunnableSetting.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model.view +package org.suyu.suyu_emu.features.settings.model.view import androidx.annotation.DrawableRes import androidx.annotation.StringRes diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SettingsItem.kt similarity index 93% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SettingsItem.kt index 5fdf983185..a956c734aa 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SettingsItem.kt @@ -1,23 +1,23 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model.view +package org.suyu.suyu_emu.features.settings.model.view import androidx.annotation.StringRes -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.features.input.NativeInput -import org.yuzu.yuzu_emu.features.input.model.NpadStyleIndex -import org.yuzu.yuzu_emu.features.settings.model.AbstractBooleanSetting -import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting -import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting -import org.yuzu.yuzu_emu.features.settings.model.ByteSetting -import org.yuzu.yuzu_emu.features.settings.model.IntSetting -import org.yuzu.yuzu_emu.features.settings.model.LongSetting -import org.yuzu.yuzu_emu.features.settings.model.ShortSetting -import org.yuzu.yuzu_emu.features.settings.model.StringSetting -import org.yuzu.yuzu_emu.utils.NativeConfig +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.features.input.NativeInput +import org.suyu.suyu_emu.features.input.model.NpadStyleIndex +import org.suyu.suyu_emu.features.settings.model.AbstractBooleanSetting +import org.suyu.suyu_emu.features.settings.model.AbstractSetting +import org.suyu.suyu_emu.features.settings.model.BooleanSetting +import org.suyu.suyu_emu.features.settings.model.ByteSetting +import org.suyu.suyu_emu.features.settings.model.IntSetting +import org.suyu.suyu_emu.features.settings.model.LongSetting +import org.suyu.suyu_emu.features.settings.model.ShortSetting +import org.suyu.suyu_emu.features.settings.model.StringSetting +import org.suyu.suyu_emu.utils.NativeConfig /** * ViewModel abstraction for an Item in the RecyclerView powering SettingsFragments. @@ -37,14 +37,14 @@ abstract class SettingsItem( val title: String by lazy { if (titleId != 0) { - return@lazy YuzuApplication.appContext.getString(titleId) + return@lazy SuyuApplication.appContext.getString(titleId) } return@lazy titleString } val description: String by lazy { if (descriptionId != 0) { - return@lazy YuzuApplication.appContext.getString(descriptionId) + return@lazy SuyuApplication.appContext.getString(descriptionId) } return@lazy descriptionString } diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SingleChoiceSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SingleChoiceSetting.kt similarity index 76% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SingleChoiceSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SingleChoiceSetting.kt index ea5e099ede..a153bfaf4e 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SingleChoiceSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SingleChoiceSetting.kt @@ -1,12 +1,12 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model.view +package org.suyu.suyu_emu.features.settings.model.view import androidx.annotation.ArrayRes import androidx.annotation.StringRes -import org.yuzu.yuzu_emu.features.settings.model.AbstractIntSetting -import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting +import org.suyu.suyu_emu.features.settings.model.AbstractIntSetting +import org.suyu.suyu_emu.features.settings.model.AbstractSetting class SingleChoiceSetting( setting: AbstractSetting, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SliderSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SliderSetting.kt similarity index 75% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SliderSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SliderSetting.kt index 6a5cdf48b3..af34dfdef8 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SliderSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SliderSetting.kt @@ -1,14 +1,14 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model.view +package org.suyu.suyu_emu.features.settings.model.view import androidx.annotation.StringRes -import org.yuzu.yuzu_emu.features.settings.model.AbstractByteSetting -import org.yuzu.yuzu_emu.features.settings.model.AbstractFloatSetting -import org.yuzu.yuzu_emu.features.settings.model.AbstractIntSetting -import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting -import org.yuzu.yuzu_emu.features.settings.model.AbstractShortSetting +import org.suyu.suyu_emu.features.settings.model.AbstractByteSetting +import org.suyu.suyu_emu.features.settings.model.AbstractFloatSetting +import org.suyu.suyu_emu.features.settings.model.AbstractIntSetting +import org.suyu.suyu_emu.features.settings.model.AbstractSetting +import org.suyu.suyu_emu.features.settings.model.AbstractShortSetting import kotlin.math.roundToInt class SliderSetting( diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringInputSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/StringInputSetting.kt similarity index 78% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringInputSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/StringInputSetting.kt index 1eb999416a..fa439e9ed7 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringInputSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/StringInputSetting.kt @@ -1,10 +1,10 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model.view +package org.suyu.suyu_emu.features.settings.model.view import androidx.annotation.StringRes -import org.yuzu.yuzu_emu.features.settings.model.AbstractStringSetting +import org.suyu.suyu_emu.features.settings.model.AbstractStringSetting class StringInputSetting( setting: AbstractStringSetting, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringSingleChoiceSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/StringSingleChoiceSetting.kt similarity index 85% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringSingleChoiceSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/StringSingleChoiceSetting.kt index 5260ff4dc3..eb18f191e7 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/StringSingleChoiceSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/StringSingleChoiceSetting.kt @@ -1,10 +1,10 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model.view +package org.suyu.suyu_emu.features.settings.model.view import androidx.annotation.StringRes -import org.yuzu.yuzu_emu.features.settings.model.AbstractStringSetting +import org.suyu.suyu_emu.features.settings.model.AbstractStringSetting class StringSingleChoiceSetting( private val stringSetting: AbstractStringSetting, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SubmenuSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SubmenuSetting.kt similarity index 74% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SubmenuSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SubmenuSetting.kt index c722393ddb..a5e9f8556f 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SubmenuSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SubmenuSetting.kt @@ -1,11 +1,11 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model.view +package org.suyu.suyu_emu.features.settings.model.view import androidx.annotation.DrawableRes import androidx.annotation.StringRes -import org.yuzu.yuzu_emu.features.settings.model.Settings +import org.suyu.suyu_emu.features.settings.model.Settings class SubmenuSetting( @StringRes titleId: Int = 0, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SwitchSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SwitchSetting.kt similarity index 75% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SwitchSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SwitchSetting.kt index 4984bf52e1..534e6ef8aa 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SwitchSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SwitchSetting.kt @@ -1,12 +1,12 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.model.view +package org.suyu.suyu_emu.features.settings.model.view import androidx.annotation.StringRes -import org.yuzu.yuzu_emu.features.settings.model.AbstractBooleanSetting -import org.yuzu.yuzu_emu.features.settings.model.AbstractIntSetting -import org.yuzu.yuzu_emu.features.settings.model.AbstractSetting +import org.suyu.suyu_emu.features.settings.model.AbstractBooleanSetting +import org.suyu.suyu_emu.features.settings.model.AbstractIntSetting +import org.suyu.suyu_emu.features.settings.model.AbstractSetting class SwitchSetting( setting: AbstractSetting, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/InputDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/InputDialogFragment.kt similarity index 93% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/InputDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/InputDialogFragment.kt index 16a1d05044..4218344bb3 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/InputDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/InputDialogFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui +package org.suyu.suyu_emu.features.settings.ui import android.app.Dialog import android.graphics.drawable.Animatable2 @@ -17,17 +17,17 @@ import android.view.ViewGroup import androidx.fragment.app.DialogFragment import androidx.fragment.app.activityViewModels import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.databinding.DialogMappingBinding -import org.yuzu.yuzu_emu.features.input.NativeInput -import org.yuzu.yuzu_emu.features.input.model.NativeAnalog -import org.yuzu.yuzu_emu.features.input.model.NativeButton -import org.yuzu.yuzu_emu.features.settings.model.view.AnalogInputSetting -import org.yuzu.yuzu_emu.features.settings.model.view.ButtonInputSetting -import org.yuzu.yuzu_emu.features.settings.model.view.InputSetting -import org.yuzu.yuzu_emu.features.settings.model.view.ModifierInputSetting -import org.yuzu.yuzu_emu.utils.InputHandler -import org.yuzu.yuzu_emu.utils.ParamPackage +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.databinding.DialogMappingBinding +import org.suyu.suyu_emu.features.input.NativeInput +import org.suyu.suyu_emu.features.input.model.NativeAnalog +import org.suyu.suyu_emu.features.input.model.NativeButton +import org.suyu.suyu_emu.features.settings.model.view.AnalogInputSetting +import org.suyu.suyu_emu.features.settings.model.view.ButtonInputSetting +import org.suyu.suyu_emu.features.settings.model.view.InputSetting +import org.suyu.suyu_emu.features.settings.model.view.ModifierInputSetting +import org.suyu.suyu_emu.utils.InputHandler +import org.suyu.suyu_emu.utils.ParamPackage class InputDialogFragment : DialogFragment() { private var inputAccepted = false diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/InputProfileAdapter.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/InputProfileAdapter.kt similarity index 84% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/InputProfileAdapter.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/InputProfileAdapter.kt index 5656e9d8de..ad8db207b2 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/InputProfileAdapter.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/InputProfileAdapter.kt @@ -1,16 +1,16 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui +package org.suyu.suyu_emu.features.settings.ui import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.adapters.AbstractListAdapter -import org.yuzu.yuzu_emu.databinding.ListItemInputProfileBinding -import org.yuzu.yuzu_emu.viewholder.AbstractViewHolder -import org.yuzu.yuzu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.adapters.AbstractListAdapter +import org.suyu.suyu_emu.databinding.ListItemInputProfileBinding +import org.suyu.suyu_emu.viewholder.AbstractViewHolder +import org.suyu.suyu_emu.R class InputProfileAdapter(options: List) : AbstractListAdapter>(options) { @@ -57,7 +57,7 @@ sealed interface ProfileItem { data class NewProfileItem( val createNewProfile: () -> Unit ) : ProfileItem { - override val name: String = YuzuApplication.appContext.getString(R.string.create_new_profile) + override val name: String = SuyuApplication.appContext.getString(R.string.create_new_profile) } data class ExistingProfileItem( diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/InputProfileDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/InputProfileDialogFragment.kt similarity index 93% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/InputProfileDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/InputProfileDialogFragment.kt index 1bae593ae0..b286e27445 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/InputProfileDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/InputProfileDialogFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui +package org.suyu.suyu_emu.features.settings.ui import android.app.Dialog import android.os.Bundle @@ -13,11 +13,11 @@ import androidx.fragment.app.DialogFragment import androidx.fragment.app.activityViewModels import androidx.recyclerview.widget.LinearLayoutManager import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.databinding.DialogInputProfilesBinding -import org.yuzu.yuzu_emu.features.settings.model.view.InputProfileSetting -import org.yuzu.yuzu_emu.fragments.MessageDialogFragment -import org.yuzu.yuzu_emu.utils.collect +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.databinding.DialogInputProfilesBinding +import org.suyu.suyu_emu.features.settings.model.view.InputProfileSetting +import org.suyu.suyu_emu.fragments.MessageDialogFragment +import org.suyu.suyu_emu.utils.collect class InputProfileDialogFragment : DialogFragment() { private var position = 0 diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/NewInputProfileDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/NewInputProfileDialogFragment.kt similarity index 91% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/NewInputProfileDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/NewInputProfileDialogFragment.kt index 6e52bea80e..3dfefdf14f 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/NewInputProfileDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/NewInputProfileDialogFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui +package org.suyu.suyu_emu.features.settings.ui import android.app.Dialog import android.os.Bundle @@ -9,9 +9,9 @@ import android.widget.Toast import androidx.fragment.app.DialogFragment import androidx.fragment.app.activityViewModels import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.yuzu.yuzu_emu.databinding.DialogEditTextBinding -import org.yuzu.yuzu_emu.features.settings.model.view.InputProfileSetting -import org.yuzu.yuzu_emu.R +import org.suyu.suyu_emu.databinding.DialogEditTextBinding +import org.suyu.suyu_emu.features.settings.model.view.InputProfileSetting +import org.suyu.suyu_emu.R class NewInputProfileDialogFragment : DialogFragment() { private var position = 0 diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivity.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsActivity.kt similarity index 92% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivity.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsActivity.kt index 455b3b5ff1..753e196acd 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsActivity.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsActivity.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui +package org.suyu.suyu_emu.features.settings.ui import android.os.Bundle import android.view.View @@ -16,14 +16,14 @@ import androidx.core.view.WindowInsetsCompat import androidx.navigation.fragment.NavHostFragment import androidx.navigation.navArgs import com.google.android.material.color.MaterialColors -import org.yuzu.yuzu_emu.NativeLibrary +import org.suyu.suyu_emu.NativeLibrary import java.io.IOException -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.databinding.ActivitySettingsBinding -import org.yuzu.yuzu_emu.features.input.NativeInput -import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile -import org.yuzu.yuzu_emu.fragments.ResetSettingsDialogFragment -import org.yuzu.yuzu_emu.utils.* +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.databinding.ActivitySettingsBinding +import org.suyu.suyu_emu.features.input.NativeInput +import org.suyu.suyu_emu.features.settings.utils.SettingsFile +import org.suyu.suyu_emu.fragments.ResetSettingsDialogFragment +import org.suyu.suyu_emu.utils.* class SettingsActivity : AppCompatActivity() { private lateinit var binding: ActivitySettingsBinding diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsAdapter.kt similarity index 95% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsAdapter.kt index 500ac6e66e..dd69c2ed59 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsAdapter.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui +package org.suyu.suyu_emu.features.settings.ui import android.content.Context import android.icu.util.Calendar @@ -20,18 +20,18 @@ import androidx.recyclerview.widget.ListAdapter import com.google.android.material.datepicker.MaterialDatePicker import com.google.android.material.timepicker.MaterialTimePicker import com.google.android.material.timepicker.TimeFormat -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.SettingsNavigationDirections -import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding -import org.yuzu.yuzu_emu.databinding.ListItemSettingInputBinding -import org.yuzu.yuzu_emu.databinding.ListItemSettingSwitchBinding -import org.yuzu.yuzu_emu.databinding.ListItemSettingsHeaderBinding -import org.yuzu.yuzu_emu.features.input.NativeInput -import org.yuzu.yuzu_emu.features.input.model.AnalogDirection -import org.yuzu.yuzu_emu.features.settings.model.AbstractIntSetting -import org.yuzu.yuzu_emu.features.settings.model.view.* -import org.yuzu.yuzu_emu.features.settings.ui.viewholder.* -import org.yuzu.yuzu_emu.utils.ParamPackage +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SettingsNavigationDirections +import org.suyu.suyu_emu.databinding.ListItemSettingBinding +import org.suyu.suyu_emu.databinding.ListItemSettingInputBinding +import org.suyu.suyu_emu.databinding.ListItemSettingSwitchBinding +import org.suyu.suyu_emu.databinding.ListItemSettingsHeaderBinding +import org.suyu.suyu_emu.features.input.NativeInput +import org.suyu.suyu_emu.features.input.model.AnalogDirection +import org.suyu.suyu_emu.features.settings.model.AbstractIntSetting +import org.suyu.suyu_emu.features.settings.model.view.* +import org.suyu.suyu_emu.features.settings.ui.viewholder.* +import org.suyu.suyu_emu.utils.ParamPackage class SettingsAdapter( private val fragment: Fragment, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsDialogFragment.kt similarity index 92% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsDialogFragment.kt index 7f562a1f41..748b845ade 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsDialogFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui +package org.suyu.suyu_emu.features.settings.ui import android.app.Dialog import android.content.DialogInterface @@ -13,21 +13,21 @@ import androidx.fragment.app.DialogFragment import androidx.fragment.app.activityViewModels import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.slider.Slider -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.databinding.DialogEditTextBinding -import org.yuzu.yuzu_emu.databinding.DialogSliderBinding -import org.yuzu.yuzu_emu.features.input.NativeInput -import org.yuzu.yuzu_emu.features.input.model.AnalogDirection -import org.yuzu.yuzu_emu.features.settings.model.view.AnalogInputSetting -import org.yuzu.yuzu_emu.features.settings.model.view.ButtonInputSetting -import org.yuzu.yuzu_emu.features.settings.model.view.IntSingleChoiceSetting -import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem -import org.yuzu.yuzu_emu.features.settings.model.view.SingleChoiceSetting -import org.yuzu.yuzu_emu.features.settings.model.view.SliderSetting -import org.yuzu.yuzu_emu.features.settings.model.view.StringInputSetting -import org.yuzu.yuzu_emu.features.settings.model.view.StringSingleChoiceSetting -import org.yuzu.yuzu_emu.utils.ParamPackage -import org.yuzu.yuzu_emu.utils.collect +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.databinding.DialogEditTextBinding +import org.suyu.suyu_emu.databinding.DialogSliderBinding +import org.suyu.suyu_emu.features.input.NativeInput +import org.suyu.suyu_emu.features.input.model.AnalogDirection +import org.suyu.suyu_emu.features.settings.model.view.AnalogInputSetting +import org.suyu.suyu_emu.features.settings.model.view.ButtonInputSetting +import org.suyu.suyu_emu.features.settings.model.view.IntSingleChoiceSetting +import org.suyu.suyu_emu.features.settings.model.view.SettingsItem +import org.suyu.suyu_emu.features.settings.model.view.SingleChoiceSetting +import org.suyu.suyu_emu.features.settings.model.view.SliderSetting +import org.suyu.suyu_emu.features.settings.model.view.StringInputSetting +import org.suyu.suyu_emu.features.settings.model.view.StringSingleChoiceSetting +import org.suyu.suyu_emu.utils.ParamPackage +import org.suyu.suyu_emu.utils.collect class SettingsDialogFragment : DialogFragment(), DialogInterface.OnClickListener { private var type = 0 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/suyu/suyu_emu/features/settings/ui/SettingsFragment.kt similarity index 94% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsFragment.kt index ec16f16c46..0d0acda788 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/suyu/suyu_emu/features/settings/ui/SettingsFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui +package org.suyu.suyu_emu.features.settings.ui import android.annotation.SuppressLint import android.os.Bundle @@ -17,13 +17,13 @@ import androidx.navigation.findNavController import androidx.navigation.fragment.navArgs import androidx.recyclerview.widget.LinearLayoutManager import com.google.android.material.transition.MaterialSharedAxis -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.databinding.FragmentSettingsBinding -import org.yuzu.yuzu_emu.features.input.NativeInput -import org.yuzu.yuzu_emu.features.settings.model.Settings -import org.yuzu.yuzu_emu.fragments.MessageDialogFragment -import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins -import org.yuzu.yuzu_emu.utils.collect +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.databinding.FragmentSettingsBinding +import org.suyu.suyu_emu.features.input.NativeInput +import org.suyu.suyu_emu.features.settings.model.Settings +import org.suyu.suyu_emu.fragments.MessageDialogFragment +import org.suyu.suyu_emu.utils.ViewUtils.updateMargins +import org.suyu.suyu_emu.utils.collect class SettingsFragment : Fragment() { private lateinit var presenter: SettingsFragmentPresenter diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsFragmentPresenter.kt similarity index 96% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsFragmentPresenter.kt index 3ea5f50081..0f53c83fe5 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsFragmentPresenter.kt @@ -1,32 +1,32 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui +package org.suyu.suyu_emu.features.settings.ui import android.annotation.SuppressLint import android.os.Build import android.widget.Toast -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.features.input.NativeInput -import org.yuzu.yuzu_emu.features.input.model.AnalogDirection -import org.yuzu.yuzu_emu.features.input.model.NativeAnalog -import org.yuzu.yuzu_emu.features.input.model.NativeButton -import org.yuzu.yuzu_emu.features.input.model.NpadStyleIndex -import org.yuzu.yuzu_emu.features.settings.model.AbstractBooleanSetting -import org.yuzu.yuzu_emu.features.settings.model.AbstractIntSetting -import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting -import org.yuzu.yuzu_emu.features.settings.model.ByteSetting -import org.yuzu.yuzu_emu.features.settings.model.IntSetting -import org.yuzu.yuzu_emu.features.settings.model.LongSetting -import org.yuzu.yuzu_emu.features.settings.model.Settings -import org.yuzu.yuzu_emu.features.settings.model.Settings.MenuTag -import org.yuzu.yuzu_emu.features.settings.model.ShortSetting -import org.yuzu.yuzu_emu.features.settings.model.StringSetting -import org.yuzu.yuzu_emu.features.settings.model.view.* -import org.yuzu.yuzu_emu.utils.InputHandler -import org.yuzu.yuzu_emu.utils.NativeConfig +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.features.input.NativeInput +import org.suyu.suyu_emu.features.input.model.AnalogDirection +import org.suyu.suyu_emu.features.input.model.NativeAnalog +import org.suyu.suyu_emu.features.input.model.NativeButton +import org.suyu.suyu_emu.features.input.model.NpadStyleIndex +import org.suyu.suyu_emu.features.settings.model.AbstractBooleanSetting +import org.suyu.suyu_emu.features.settings.model.AbstractIntSetting +import org.suyu.suyu_emu.features.settings.model.BooleanSetting +import org.suyu.suyu_emu.features.settings.model.ByteSetting +import org.suyu.suyu_emu.features.settings.model.IntSetting +import org.suyu.suyu_emu.features.settings.model.LongSetting +import org.suyu.suyu_emu.features.settings.model.Settings +import org.suyu.suyu_emu.features.settings.model.Settings.MenuTag +import org.suyu.suyu_emu.features.settings.model.ShortSetting +import org.suyu.suyu_emu.features.settings.model.StringSetting +import org.suyu.suyu_emu.features.settings.model.view.* +import org.suyu.suyu_emu.utils.InputHandler +import org.suyu.suyu_emu.utils.NativeConfig class SettingsFragmentPresenter( private val settingsViewModel: SettingsViewModel, @@ -35,7 +35,7 @@ class SettingsFragmentPresenter( ) { private var settingsList = ArrayList() - private val context get() = YuzuApplication.appContext + private val context get() = SuyuApplication.appContext // Extension for altering settings list based on each setting's properties fun ArrayList.add(key: String) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsSearchFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsSearchFragment.kt similarity index 93% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsSearchFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsSearchFragment.kt index ed60cf34f9..d29d81e34d 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsSearchFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsSearchFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui +package org.suyu.suyu_emu.features.settings.ui import android.content.Context import android.os.Bundle @@ -19,13 +19,13 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.google.android.material.divider.MaterialDividerItemDecoration import com.google.android.material.transition.MaterialSharedAxis import info.debatty.java.stringsimilarity.Cosine -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.databinding.FragmentSettingsSearchBinding -import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem -import org.yuzu.yuzu_emu.utils.NativeConfig -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible -import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins -import org.yuzu.yuzu_emu.utils.collect +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.databinding.FragmentSettingsSearchBinding +import org.suyu.suyu_emu.features.settings.model.view.SettingsItem +import org.suyu.suyu_emu.utils.NativeConfig +import org.suyu.suyu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.utils.ViewUtils.updateMargins +import org.suyu.suyu_emu.utils.collect class SettingsSearchFragment : Fragment() { private var _binding: FragmentSettingsSearchBinding? = null diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsViewModel.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsViewModel.kt similarity index 89% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsViewModel.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsViewModel.kt index fbdca04e9c..06d4163d05 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsViewModel.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/SettingsViewModel.kt @@ -1,18 +1,18 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui +package org.suyu.suyu_emu.features.settings.ui import androidx.lifecycle.ViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem -import org.yuzu.yuzu_emu.model.Game -import org.yuzu.yuzu_emu.utils.InputHandler -import org.yuzu.yuzu_emu.utils.ParamPackage +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.features.settings.model.view.SettingsItem +import org.suyu.suyu_emu.model.Game +import org.suyu.suyu_emu.utils.InputHandler +import org.suyu.suyu_emu.utils.ParamPackage class SettingsViewModel : ViewModel() { var game: Game? = null @@ -73,7 +73,7 @@ class SettingsViewModel : ViewModel() { fun setSliderTextValue(value: Float, units: String) { _sliderProgress.value = value.toInt() _sliderTextValue.value = String.format( - YuzuApplication.appContext.getString(R.string.value_with_units), + SuyuApplication.appContext.getString(R.string.value_with_units), value.toInt().toString(), units ) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/DateTimeViewHolder.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/DateTimeViewHolder.kt similarity index 80% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/DateTimeViewHolder.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/DateTimeViewHolder.kt index 0309fad591..3e0881a2e2 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/DateTimeViewHolder.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/DateTimeViewHolder.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui.viewholder +package org.suyu.suyu_emu.features.settings.ui.viewholder import android.view.View import java.time.Instant @@ -9,11 +9,11 @@ import java.time.ZoneId import java.time.ZonedDateTime import java.time.format.DateTimeFormatter import java.time.format.FormatStyle -import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding -import org.yuzu.yuzu_emu.features.settings.model.view.DateTimeSetting -import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem -import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.databinding.ListItemSettingBinding +import org.suyu.suyu_emu.features.settings.model.view.DateTimeSetting +import org.suyu.suyu_emu.features.settings.model.view.SettingsItem +import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter +import org.suyu.suyu_emu.utils.ViewUtils.setVisible class DateTimeViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) : SettingViewHolder(binding.root, adapter) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/HeaderViewHolder.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/HeaderViewHolder.kt similarity index 64% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/HeaderViewHolder.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/HeaderViewHolder.kt index 0815c36e2e..21b0e53984 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/HeaderViewHolder.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/HeaderViewHolder.kt @@ -1,12 +1,12 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui.viewholder +package org.suyu.suyu_emu.features.settings.ui.viewholder import android.view.View -import org.yuzu.yuzu_emu.databinding.ListItemSettingsHeaderBinding -import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem -import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter +import org.suyu.suyu_emu.databinding.ListItemSettingsHeaderBinding +import org.suyu.suyu_emu.features.settings.model.view.SettingsItem +import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter class HeaderViewHolder(val binding: ListItemSettingsHeaderBinding, adapter: SettingsAdapter) : SettingViewHolder(binding.root, adapter) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/InputProfileViewHolder.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/InputProfileViewHolder.kt similarity index 67% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/InputProfileViewHolder.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/InputProfileViewHolder.kt index 86af3a2269..fe8811f6e8 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/InputProfileViewHolder.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/InputProfileViewHolder.kt @@ -1,15 +1,15 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui.viewholder +package org.suyu.suyu_emu.features.settings.ui.viewholder import android.view.View -import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding -import org.yuzu.yuzu_emu.features.settings.model.view.InputProfileSetting -import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem -import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.databinding.ListItemSettingBinding +import org.suyu.suyu_emu.features.settings.model.view.InputProfileSetting +import org.suyu.suyu_emu.features.settings.model.view.SettingsItem +import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.utils.ViewUtils.setVisible class InputProfileViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) : SettingViewHolder(binding.root, adapter) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/InputViewHolder.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/InputViewHolder.kt similarity index 74% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/InputViewHolder.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/InputViewHolder.kt index 9d90478040..a3fbd301bd 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/InputViewHolder.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/InputViewHolder.kt @@ -1,18 +1,18 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui.viewholder +package org.suyu.suyu_emu.features.settings.ui.viewholder import android.view.View -import org.yuzu.yuzu_emu.databinding.ListItemSettingInputBinding -import org.yuzu.yuzu_emu.features.input.NativeInput -import org.yuzu.yuzu_emu.features.settings.model.view.AnalogInputSetting -import org.yuzu.yuzu_emu.features.settings.model.view.ButtonInputSetting -import org.yuzu.yuzu_emu.features.settings.model.view.InputSetting -import org.yuzu.yuzu_emu.features.settings.model.view.ModifierInputSetting -import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem -import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.databinding.ListItemSettingInputBinding +import org.suyu.suyu_emu.features.input.NativeInput +import org.suyu.suyu_emu.features.settings.model.view.AnalogInputSetting +import org.suyu.suyu_emu.features.settings.model.view.ButtonInputSetting +import org.suyu.suyu_emu.features.settings.model.view.InputSetting +import org.suyu.suyu_emu.features.settings.model.view.ModifierInputSetting +import org.suyu.suyu_emu.features.settings.model.view.SettingsItem +import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter +import org.suyu.suyu_emu.utils.ViewUtils.setVisible class InputViewHolder(val binding: ListItemSettingInputBinding, adapter: SettingsAdapter) : SettingViewHolder(binding.root, adapter) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/RunnableViewHolder.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/RunnableViewHolder.kt similarity index 76% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/RunnableViewHolder.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/RunnableViewHolder.kt index fc2ffb515d..30fee8900a 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/RunnableViewHolder.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/RunnableViewHolder.kt @@ -1,15 +1,15 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui.viewholder +package org.suyu.suyu_emu.features.settings.ui.viewholder import android.view.View import androidx.core.content.res.ResourcesCompat -import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding -import org.yuzu.yuzu_emu.features.settings.model.view.RunnableSetting -import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem -import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.databinding.ListItemSettingBinding +import org.suyu.suyu_emu.features.settings.model.view.RunnableSetting +import org.suyu.suyu_emu.features.settings.model.view.SettingsItem +import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter +import org.suyu.suyu_emu.utils.ViewUtils.setVisible class RunnableViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) : SettingViewHolder(binding.root, adapter) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SettingViewHolder.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/SettingViewHolder.kt similarity index 82% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SettingViewHolder.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/SettingViewHolder.kt index d26887df81..4477cac416 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SettingViewHolder.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/SettingViewHolder.kt @@ -1,14 +1,14 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui.viewholder +package org.suyu.suyu_emu.features.settings.ui.viewholder import android.view.View import androidx.recyclerview.widget.RecyclerView -import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding -import org.yuzu.yuzu_emu.databinding.ListItemSettingSwitchBinding -import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem -import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter +import org.suyu.suyu_emu.databinding.ListItemSettingBinding +import org.suyu.suyu_emu.databinding.ListItemSettingSwitchBinding +import org.suyu.suyu_emu.features.settings.model.view.SettingsItem +import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter abstract class SettingViewHolder(itemView: View, protected val adapter: SettingsAdapter) : RecyclerView.ViewHolder(itemView), View.OnClickListener, View.OnLongClickListener { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt similarity index 83% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt index 489f55455d..813eb1ceaf 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt @@ -1,16 +1,16 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui.viewholder +package org.suyu.suyu_emu.features.settings.ui.viewholder import android.view.View -import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding -import org.yuzu.yuzu_emu.features.settings.model.view.IntSingleChoiceSetting -import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem -import org.yuzu.yuzu_emu.features.settings.model.view.SingleChoiceSetting -import org.yuzu.yuzu_emu.features.settings.model.view.StringSingleChoiceSetting -import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.databinding.ListItemSettingBinding +import org.suyu.suyu_emu.features.settings.model.view.IntSingleChoiceSetting +import org.suyu.suyu_emu.features.settings.model.view.SettingsItem +import org.suyu.suyu_emu.features.settings.model.view.SingleChoiceSetting +import org.suyu.suyu_emu.features.settings.model.view.StringSingleChoiceSetting +import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter +import org.suyu.suyu_emu.utils.ViewUtils.setVisible class SingleChoiceViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) : SettingViewHolder(binding.root, adapter) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SliderViewHolder.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/SliderViewHolder.kt similarity index 76% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SliderViewHolder.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/SliderViewHolder.kt index 90a7138cb7..0f6e65e669 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SliderViewHolder.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/SliderViewHolder.kt @@ -1,15 +1,15 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui.viewholder +package org.suyu.suyu_emu.features.settings.ui.viewholder import android.view.View -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding -import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem -import org.yuzu.yuzu_emu.features.settings.model.view.SliderSetting -import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.databinding.ListItemSettingBinding +import org.suyu.suyu_emu.features.settings.model.view.SettingsItem +import org.suyu.suyu_emu.features.settings.model.view.SliderSetting +import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter +import org.suyu.suyu_emu.utils.ViewUtils.setVisible class SliderViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) : SettingViewHolder(binding.root, adapter) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/StringInputViewHolder.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/StringInputViewHolder.kt similarity index 75% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/StringInputViewHolder.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/StringInputViewHolder.kt index a4fd36f628..f20d4070d5 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/StringInputViewHolder.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/StringInputViewHolder.kt @@ -1,14 +1,14 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui.viewholder +package org.suyu.suyu_emu.features.settings.ui.viewholder import android.view.View -import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding -import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem -import org.yuzu.yuzu_emu.features.settings.model.view.StringInputSetting -import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.databinding.ListItemSettingBinding +import org.suyu.suyu_emu.features.settings.model.view.SettingsItem +import org.suyu.suyu_emu.features.settings.model.view.StringInputSetting +import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter +import org.suyu.suyu_emu.utils.ViewUtils.setVisible class StringInputViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) : SettingViewHolder(binding.root, adapter) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt similarity index 75% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt index f7a9c08c3a..c4aa3f9634 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt @@ -1,15 +1,15 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui.viewholder +package org.suyu.suyu_emu.features.settings.ui.viewholder import android.view.View import androidx.core.content.res.ResourcesCompat -import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding -import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem -import org.yuzu.yuzu_emu.features.settings.model.view.SubmenuSetting -import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.databinding.ListItemSettingBinding +import org.suyu.suyu_emu.features.settings.model.view.SettingsItem +import org.suyu.suyu_emu.features.settings.model.view.SubmenuSetting +import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter +import org.suyu.suyu_emu.utils.ViewUtils.setVisible class SubmenuViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) : SettingViewHolder(binding.root, adapter) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt similarity index 78% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt index e5763264a4..b48a2ed457 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt @@ -1,15 +1,15 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.ui.viewholder +package org.suyu.suyu_emu.features.settings.ui.viewholder import android.view.View import android.widget.CompoundButton -import org.yuzu.yuzu_emu.databinding.ListItemSettingSwitchBinding -import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem -import org.yuzu.yuzu_emu.features.settings.model.view.SwitchSetting -import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.databinding.ListItemSettingSwitchBinding +import org.suyu.suyu_emu.features.settings.model.view.SettingsItem +import org.suyu.suyu_emu.features.settings.model.view.SwitchSetting +import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter +import org.suyu.suyu_emu.utils.ViewUtils.setVisible class SwitchSettingViewHolder(val binding: ListItemSettingSwitchBinding, adapter: SettingsAdapter) : SettingViewHolder(binding.root, adapter) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/utils/SettingsFile.kt similarity index 71% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/utils/SettingsFile.kt index 5d523be67c..5004bb204f 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/utils/SettingsFile.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/utils/SettingsFile.kt @@ -1,14 +1,14 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.features.settings.utils +package org.suyu.suyu_emu.features.settings.utils import android.net.Uri -import org.yuzu.yuzu_emu.model.Game +import org.suyu.suyu_emu.model.Game import java.io.* -import org.yuzu.yuzu_emu.utils.DirectoryInitialization -import org.yuzu.yuzu_emu.utils.FileUtil -import org.yuzu.yuzu_emu.utils.NativeConfig +import org.suyu.suyu_emu.utils.DirectoryInitialization +import org.suyu.suyu_emu.utils.FileUtil +import org.suyu.suyu_emu.utils.NativeConfig /** * Contains static methods for interacting with .ini files in which settings are stored. diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AboutFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/AboutFragment.kt similarity index 93% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AboutFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/AboutFragment.kt index ff4f0e5dfb..17744a6344 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AboutFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/AboutFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.content.ClipData import android.content.ClipboardManager @@ -21,11 +21,11 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.navigation.findNavController import com.google.android.material.transition.MaterialSharedAxis -import org.yuzu.yuzu_emu.BuildConfig -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.databinding.FragmentAboutBinding -import org.yuzu.yuzu_emu.model.HomeViewModel -import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins +import org.suyu.suyu_emu.BuildConfig +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.databinding.FragmentAboutBinding +import org.suyu.suyu_emu.model.HomeViewModel +import org.suyu.suyu_emu.utils.ViewUtils.updateMargins class AboutFragment : Fragment() { private var _binding: FragmentAboutBinding? = null diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AddGameFolderDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/AddGameFolderDialogFragment.kt similarity index 85% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AddGameFolderDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/AddGameFolderDialogFragment.kt index 9fab88248d..1181223b66 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AddGameFolderDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/AddGameFolderDialogFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.app.Dialog import android.content.DialogInterface @@ -10,11 +10,11 @@ import android.os.Bundle import androidx.fragment.app.DialogFragment import androidx.fragment.app.activityViewModels import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.databinding.DialogAddFolderBinding -import org.yuzu.yuzu_emu.model.GameDir -import org.yuzu.yuzu_emu.model.GamesViewModel -import org.yuzu.yuzu_emu.model.HomeViewModel +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.databinding.DialogAddFolderBinding +import org.suyu.suyu_emu.model.GameDir +import org.suyu.suyu_emu.model.GamesViewModel +import org.suyu.suyu_emu.model.HomeViewModel class AddGameFolderDialogFragment : DialogFragment() { private val homeViewModel: HomeViewModel by activityViewModels() diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AddonsFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/AddonsFragment.kt similarity index 94% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AddonsFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/AddonsFragment.kt index 110aa29600..e33d050dc9 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AddonsFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/AddonsFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.content.Intent import android.os.Bundle @@ -20,15 +20,15 @@ import androidx.navigation.fragment.navArgs import androidx.recyclerview.widget.LinearLayoutManager import com.google.android.material.transition.MaterialSharedAxis import kotlinx.coroutines.launch -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.adapters.AddonAdapter -import org.yuzu.yuzu_emu.databinding.FragmentAddonsBinding -import org.yuzu.yuzu_emu.model.AddonViewModel -import org.yuzu.yuzu_emu.model.HomeViewModel -import org.yuzu.yuzu_emu.utils.AddonUtil -import org.yuzu.yuzu_emu.utils.FileUtil.copyFilesTo -import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins -import org.yuzu.yuzu_emu.utils.collect +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.adapters.AddonAdapter +import org.suyu.suyu_emu.databinding.FragmentAddonsBinding +import org.suyu.suyu_emu.model.AddonViewModel +import org.suyu.suyu_emu.model.HomeViewModel +import org.suyu.suyu_emu.utils.AddonUtil +import org.suyu.suyu_emu.utils.FileUtil.copyFilesTo +import org.suyu.suyu_emu.utils.ViewUtils.updateMargins +import org.suyu.suyu_emu.utils.collect import java.io.File class AddonsFragment : Fragment() { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AppletLauncherFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/AppletLauncherFragment.kt similarity index 89% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AppletLauncherFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/AppletLauncherFragment.kt index 73ca404841..f60654ae9c 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AppletLauncherFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/AppletLauncherFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.os.Bundle import android.view.LayoutInflater @@ -15,13 +15,13 @@ import androidx.fragment.app.activityViewModels import androidx.navigation.findNavController import androidx.recyclerview.widget.GridLayoutManager import com.google.android.material.transition.MaterialSharedAxis -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.adapters.AppletAdapter -import org.yuzu.yuzu_emu.databinding.FragmentAppletLauncherBinding -import org.yuzu.yuzu_emu.model.Applet -import org.yuzu.yuzu_emu.model.AppletInfo -import org.yuzu.yuzu_emu.model.HomeViewModel -import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.adapters.AppletAdapter +import org.suyu.suyu_emu.databinding.FragmentAppletLauncherBinding +import org.suyu.suyu_emu.model.Applet +import org.suyu.suyu_emu.model.AppletInfo +import org.suyu.suyu_emu.model.HomeViewModel +import org.suyu.suyu_emu.utils.ViewUtils.updateMargins class AppletLauncherFragment : Fragment() { private var _binding: FragmentAppletLauncherBinding? = null diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/CabinetLauncherDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/CabinetLauncherDialogFragment.kt similarity index 83% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/CabinetLauncherDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/CabinetLauncherDialogFragment.kt index 5933677fd1..312c88a859 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/CabinetLauncherDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/CabinetLauncherDialogFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.app.Dialog import android.os.Bundle @@ -11,9 +11,9 @@ import android.view.ViewGroup import androidx.fragment.app.DialogFragment import androidx.recyclerview.widget.LinearLayoutManager import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.adapters.CabinetLauncherDialogAdapter -import org.yuzu.yuzu_emu.databinding.DialogListBinding +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.adapters.CabinetLauncherDialogAdapter +import org.suyu.suyu_emu.databinding.DialogListBinding class CabinetLauncherDialogFragment : DialogFragment() { private lateinit var binding: DialogListBinding diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/ContentTypeSelectionDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/ContentTypeSelectionDialogFragment.kt similarity index 88% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/ContentTypeSelectionDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/ContentTypeSelectionDialogFragment.kt index c1d8b9ea5f..c701f18486 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/ContentTypeSelectionDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/ContentTypeSelectionDialogFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.app.Dialog import android.content.DialogInterface @@ -10,16 +10,16 @@ import androidx.fragment.app.DialogFragment import androidx.fragment.app.activityViewModels import androidx.preference.PreferenceManager import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.model.AddonViewModel -import org.yuzu.yuzu_emu.ui.main.MainActivity +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.model.AddonViewModel +import org.suyu.suyu_emu.ui.main.MainActivity class ContentTypeSelectionDialogFragment : DialogFragment() { private val addonViewModel: AddonViewModel by activityViewModels() private val preferences get() = - PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext) + PreferenceManager.getDefaultSharedPreferences(SuyuApplication.appContext) private var selectedItem = 0 diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/CoreErrorDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/CoreErrorDialogFragment.kt similarity index 91% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/CoreErrorDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/CoreErrorDialogFragment.kt index 299f8da71f..4247f19f91 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/CoreErrorDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/CoreErrorDialogFragment.kt @@ -1,15 +1,15 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.app.Dialog import android.content.DialogInterface import android.os.Bundle import androidx.fragment.app.DialogFragment import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.R +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.R class CoreErrorDialogFragment : DialogFragment() { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog = diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/DriverManagerFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/DriverManagerFragment.kt similarity index 91% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/DriverManagerFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/DriverManagerFragment.kt index 8b23a10217..3aa5415adf 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/DriverManagerFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/DriverManagerFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.os.Bundle import android.view.LayoutInflater @@ -20,18 +20,18 @@ import com.google.android.material.transition.MaterialSharedAxis import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.adapters.DriverAdapter -import org.yuzu.yuzu_emu.databinding.FragmentDriverManagerBinding -import org.yuzu.yuzu_emu.features.settings.model.StringSetting -import org.yuzu.yuzu_emu.model.Driver.Companion.toDriver -import org.yuzu.yuzu_emu.model.DriverViewModel -import org.yuzu.yuzu_emu.model.HomeViewModel -import org.yuzu.yuzu_emu.utils.FileUtil -import org.yuzu.yuzu_emu.utils.GpuDriverHelper -import org.yuzu.yuzu_emu.utils.NativeConfig -import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins -import org.yuzu.yuzu_emu.utils.collect +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.adapters.DriverAdapter +import org.suyu.suyu_emu.databinding.FragmentDriverManagerBinding +import org.suyu.suyu_emu.features.settings.model.StringSetting +import org.suyu.suyu_emu.model.Driver.Companion.toDriver +import org.suyu.suyu_emu.model.DriverViewModel +import org.suyu.suyu_emu.model.HomeViewModel +import org.suyu.suyu_emu.utils.FileUtil +import org.suyu.suyu_emu.utils.GpuDriverHelper +import org.suyu.suyu_emu.utils.NativeConfig +import org.suyu.suyu_emu.utils.ViewUtils.updateMargins +import org.suyu.suyu_emu.utils.collect import java.io.File import java.io.IOException diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/DriversLoadingDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/DriversLoadingDialogFragment.kt similarity index 84% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/DriversLoadingDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/DriversLoadingDialogFragment.kt index bad56e434a..0cf93e21fd 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/DriversLoadingDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/DriversLoadingDialogFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.app.Dialog import android.os.Bundle @@ -11,10 +11,10 @@ import android.view.ViewGroup import androidx.fragment.app.DialogFragment import androidx.fragment.app.activityViewModels import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.databinding.DialogProgressBarBinding -import org.yuzu.yuzu_emu.model.DriverViewModel -import org.yuzu.yuzu_emu.utils.collect +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.databinding.DialogProgressBarBinding +import org.suyu.suyu_emu.model.DriverViewModel +import org.suyu.suyu_emu.utils.collect class DriversLoadingDialogFragment : DialogFragment() { private val driverViewModel: DriverViewModel by activityViewModels() diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EarlyAccessFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/EarlyAccessFragment.kt similarity index 90% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EarlyAccessFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/EarlyAccessFragment.kt index 0534b68ce6..cf4b114591 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EarlyAccessFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/EarlyAccessFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.content.Intent import android.net.Uri @@ -16,10 +16,10 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.navigation.fragment.findNavController import com.google.android.material.transition.MaterialSharedAxis -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.databinding.FragmentEarlyAccessBinding -import org.yuzu.yuzu_emu.model.HomeViewModel -import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.databinding.FragmentEarlyAccessBinding +import org.suyu.suyu_emu.model.HomeViewModel +import org.suyu.suyu_emu.utils.ViewUtils.updateMargins class EarlyAccessFragment : Fragment() { private var _binding: FragmentEarlyAccessBinding? = null diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/EmulationFragment.kt similarity index 97% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/EmulationFragment.kt index bcc880e17c..33a7ecc398 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/EmulationFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.annotation.SuppressLint import android.app.AlertDialog @@ -39,25 +39,25 @@ import androidx.window.layout.WindowInfoTracker import androidx.window.layout.WindowLayoutInfo import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.slider.Slider -import org.yuzu.yuzu_emu.HomeNavigationDirections -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.activities.EmulationActivity -import org.yuzu.yuzu_emu.databinding.DialogOverlayAdjustBinding -import org.yuzu.yuzu_emu.databinding.FragmentEmulationBinding -import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting -import org.yuzu.yuzu_emu.features.settings.model.IntSetting -import org.yuzu.yuzu_emu.features.settings.model.Settings -import org.yuzu.yuzu_emu.features.settings.model.Settings.EmulationOrientation -import org.yuzu.yuzu_emu.features.settings.model.Settings.EmulationVerticalAlignment -import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile -import org.yuzu.yuzu_emu.model.DriverViewModel -import org.yuzu.yuzu_emu.model.Game -import org.yuzu.yuzu_emu.model.EmulationViewModel -import org.yuzu.yuzu_emu.overlay.model.OverlayControl -import org.yuzu.yuzu_emu.overlay.model.OverlayLayout -import org.yuzu.yuzu_emu.utils.* -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.HomeNavigationDirections +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.activities.EmulationActivity +import org.suyu.suyu_emu.databinding.DialogOverlayAdjustBinding +import org.suyu.suyu_emu.databinding.FragmentEmulationBinding +import org.suyu.suyu_emu.features.settings.model.BooleanSetting +import org.suyu.suyu_emu.features.settings.model.IntSetting +import org.suyu.suyu_emu.features.settings.model.Settings +import org.suyu.suyu_emu.features.settings.model.Settings.EmulationOrientation +import org.suyu.suyu_emu.features.settings.model.Settings.EmulationVerticalAlignment +import org.suyu.suyu_emu.features.settings.utils.SettingsFile +import org.suyu.suyu_emu.model.DriverViewModel +import org.suyu.suyu_emu.model.Game +import org.suyu.suyu_emu.model.EmulationViewModel +import org.suyu.suyu_emu.overlay.model.OverlayControl +import org.suyu.suyu_emu.overlay.model.OverlayLayout +import org.suyu.suyu_emu.utils.* +import org.suyu.suyu_emu.utils.ViewUtils.setVisible import java.lang.NullPointerException class EmulationFragment : Fragment(), SurfaceHolder.Callback { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GameFolderPropertiesDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/GameFolderPropertiesDialogFragment.kt similarity index 87% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GameFolderPropertiesDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/GameFolderPropertiesDialogFragment.kt index 1ea1e036e6..f8b26b7fbe 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GameFolderPropertiesDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/GameFolderPropertiesDialogFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.app.Dialog import android.content.DialogInterface @@ -9,12 +9,12 @@ import android.os.Bundle import androidx.fragment.app.DialogFragment import androidx.fragment.app.activityViewModels import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.databinding.DialogFolderPropertiesBinding -import org.yuzu.yuzu_emu.model.GameDir -import org.yuzu.yuzu_emu.model.GamesViewModel -import org.yuzu.yuzu_emu.utils.NativeConfig -import org.yuzu.yuzu_emu.utils.SerializableHelper.parcelable +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.databinding.DialogFolderPropertiesBinding +import org.suyu.suyu_emu.model.GameDir +import org.suyu.suyu_emu.model.GamesViewModel +import org.suyu.suyu_emu.utils.NativeConfig +import org.suyu.suyu_emu.utils.SerializableHelper.parcelable class GameFolderPropertiesDialogFragment : DialogFragment() { private val gamesViewModel: GamesViewModel by activityViewModels() diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GameFoldersFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/GameFoldersFragment.kt similarity index 89% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GameFoldersFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/GameFoldersFragment.kt index 3a6f7a38c4..fca1345053 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GameFoldersFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/GameFoldersFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.content.Intent import android.os.Bundle @@ -17,14 +17,14 @@ import androidx.navigation.findNavController import androidx.recyclerview.widget.GridLayoutManager import com.google.android.material.transition.MaterialSharedAxis import kotlinx.coroutines.launch -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.adapters.FolderAdapter -import org.yuzu.yuzu_emu.databinding.FragmentFoldersBinding -import org.yuzu.yuzu_emu.model.GamesViewModel -import org.yuzu.yuzu_emu.model.HomeViewModel -import org.yuzu.yuzu_emu.ui.main.MainActivity -import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins -import org.yuzu.yuzu_emu.utils.collect +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.adapters.FolderAdapter +import org.suyu.suyu_emu.databinding.FragmentFoldersBinding +import org.suyu.suyu_emu.model.GamesViewModel +import org.suyu.suyu_emu.model.HomeViewModel +import org.suyu.suyu_emu.ui.main.MainActivity +import org.suyu.suyu_emu.utils.ViewUtils.updateMargins +import org.suyu.suyu_emu.utils.collect class GameFoldersFragment : Fragment() { private var _binding: FragmentFoldersBinding? = null diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GameInfoFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/GameInfoFragment.kt similarity index 93% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GameInfoFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/GameInfoFragment.kt index 97a8954bb2..bf075b24ef 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GameInfoFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/GameInfoFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.content.ClipData import android.content.ClipboardManager @@ -21,14 +21,14 @@ import androidx.fragment.app.activityViewModels import androidx.navigation.findNavController import androidx.navigation.fragment.navArgs import com.google.android.material.transition.MaterialSharedAxis -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.databinding.FragmentGameInfoBinding -import org.yuzu.yuzu_emu.model.GameVerificationResult -import org.yuzu.yuzu_emu.model.HomeViewModel -import org.yuzu.yuzu_emu.utils.GameMetadata -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible -import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.databinding.FragmentGameInfoBinding +import org.suyu.suyu_emu.model.GameVerificationResult +import org.suyu.suyu_emu.model.HomeViewModel +import org.suyu.suyu_emu.utils.GameMetadata +import org.suyu.suyu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.utils.ViewUtils.updateMargins class GameInfoFragment : Fragment() { private var _binding: FragmentGameInfoBinding? = null diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GamePropertiesFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/GamePropertiesFragment.kt similarity index 92% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GamePropertiesFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/GamePropertiesFragment.kt index c06842c596..e05e105eb8 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GamePropertiesFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/GamePropertiesFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.content.pm.ShortcutInfo import android.content.pm.ShortcutManager @@ -24,27 +24,27 @@ import com.google.android.material.transition.MaterialSharedAxis import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -import org.yuzu.yuzu_emu.HomeNavigationDirections -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.adapters.GamePropertiesAdapter -import org.yuzu.yuzu_emu.databinding.FragmentGamePropertiesBinding -import org.yuzu.yuzu_emu.features.settings.model.Settings -import org.yuzu.yuzu_emu.model.DriverViewModel -import org.yuzu.yuzu_emu.model.GameProperty -import org.yuzu.yuzu_emu.model.GamesViewModel -import org.yuzu.yuzu_emu.model.HomeViewModel -import org.yuzu.yuzu_emu.model.InstallableProperty -import org.yuzu.yuzu_emu.model.SubmenuProperty -import org.yuzu.yuzu_emu.model.TaskState -import org.yuzu.yuzu_emu.utils.DirectoryInitialization -import org.yuzu.yuzu_emu.utils.FileUtil -import org.yuzu.yuzu_emu.utils.GameIconUtils -import org.yuzu.yuzu_emu.utils.GpuDriverHelper -import org.yuzu.yuzu_emu.utils.MemoryUtil -import org.yuzu.yuzu_emu.utils.ViewUtils.marquee -import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins -import org.yuzu.yuzu_emu.utils.collect +import org.suyu.suyu_emu.HomeNavigationDirections +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.adapters.GamePropertiesAdapter +import org.suyu.suyu_emu.databinding.FragmentGamePropertiesBinding +import org.suyu.suyu_emu.features.settings.model.Settings +import org.suyu.suyu_emu.model.DriverViewModel +import org.suyu.suyu_emu.model.GameProperty +import org.suyu.suyu_emu.model.GamesViewModel +import org.suyu.suyu_emu.model.HomeViewModel +import org.suyu.suyu_emu.model.InstallableProperty +import org.suyu.suyu_emu.model.SubmenuProperty +import org.suyu.suyu_emu.model.TaskState +import org.suyu.suyu_emu.utils.DirectoryInitialization +import org.suyu.suyu_emu.utils.FileUtil +import org.suyu.suyu_emu.utils.GameIconUtils +import org.suyu.suyu_emu.utils.GpuDriverHelper +import org.suyu.suyu_emu.utils.MemoryUtil +import org.suyu.suyu_emu.utils.ViewUtils.marquee +import org.suyu.suyu_emu.utils.ViewUtils.updateMargins +import org.suyu.suyu_emu.utils.collect import java.io.BufferedOutputStream import java.io.File @@ -224,7 +224,7 @@ class GamePropertiesFragment : Fragment() { negativeAction = { File(args.game.saveDir).deleteRecursively() Toast.makeText( - YuzuApplication.appContext, + SuyuApplication.appContext, R.string.save_data_deleted_successfully, Toast.LENGTH_SHORT ).show() @@ -263,7 +263,7 @@ class GamePropertiesFragment : Fragment() { positiveAction = { shaderCacheDir.deleteRecursively() Toast.makeText( - YuzuApplication.appContext, + SuyuApplication.appContext, R.string.cleared_shaders_successfully, Toast.LENGTH_SHORT ).show() @@ -374,7 +374,7 @@ class GamePropertiesFragment : Fragment() { return@withContext } Toast.makeText( - YuzuApplication.appContext, + SuyuApplication.appContext, getString(R.string.save_file_imported_success), Toast.LENGTH_LONG ).show() @@ -384,7 +384,7 @@ class GamePropertiesFragment : Fragment() { cacheSaveDir.deleteRecursively() } catch (e: Exception) { Toast.makeText( - YuzuApplication.appContext, + SuyuApplication.appContext, getString(R.string.fatal_error), Toast.LENGTH_LONG ).show() diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/HomeSettingsFragment.kt similarity index 89% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/HomeSettingsFragment.kt index 14a2504b6a..ed8d2131b2 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/HomeSettingsFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.Manifest import android.content.ActivityNotFoundException @@ -27,23 +27,23 @@ import androidx.navigation.findNavController import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.GridLayoutManager import com.google.android.material.transition.MaterialSharedAxis -import org.yuzu.yuzu_emu.BuildConfig -import org.yuzu.yuzu_emu.HomeNavigationDirections -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.adapters.HomeSettingAdapter -import org.yuzu.yuzu_emu.databinding.FragmentHomeSettingsBinding -import org.yuzu.yuzu_emu.features.DocumentProvider -import org.yuzu.yuzu_emu.features.settings.model.Settings -import org.yuzu.yuzu_emu.model.DriverViewModel -import org.yuzu.yuzu_emu.model.HomeSetting -import org.yuzu.yuzu_emu.model.HomeViewModel -import org.yuzu.yuzu_emu.ui.main.MainActivity -import org.yuzu.yuzu_emu.utils.FileUtil -import org.yuzu.yuzu_emu.utils.GpuDriverHelper -import org.yuzu.yuzu_emu.utils.Log -import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins +import org.suyu.suyu_emu.BuildConfig +import org.suyu.suyu_emu.HomeNavigationDirections +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.adapters.HomeSettingAdapter +import org.suyu.suyu_emu.databinding.FragmentHomeSettingsBinding +import org.suyu.suyu_emu.features.DocumentProvider +import org.suyu.suyu_emu.features.settings.model.Settings +import org.suyu.suyu_emu.model.DriverViewModel +import org.suyu.suyu_emu.model.HomeSetting +import org.suyu.suyu_emu.model.HomeViewModel +import org.suyu.suyu_emu.ui.main.MainActivity +import org.suyu.suyu_emu.utils.FileUtil +import org.suyu.suyu_emu.utils.GpuDriverHelper +import org.suyu.suyu_emu.utils.Log +import org.suyu.suyu_emu.utils.ViewUtils.updateMargins class HomeSettingsFragment : Fragment() { private var _binding: FragmentHomeSettingsBinding? = null @@ -135,8 +135,8 @@ class HomeSettingsFragment : Fragment() { ) add( HomeSetting( - R.string.manage_yuzu_data, - R.string.manage_yuzu_data_description, + R.string.manage_suyu_data, + R.string.manage_suyu_data_description, R.drawable.ic_install, { binding.root.findNavController() @@ -180,7 +180,7 @@ class HomeSettingsFragment : Fragment() { ) } else { val failedNames = result.joinToString("\n") - val errorMessage = YuzuApplication.appContext.getString( + val errorMessage = SuyuApplication.appContext.getString( R.string.verification_failed_for, failedNames ) @@ -236,22 +236,22 @@ class HomeSettingsFragment : Fragment() { ) ) } - - if (!BuildConfig.PREMIUM) { - optionsList.add( - 0, - HomeSetting( - R.string.get_early_access, - R.string.get_early_access_description, - R.drawable.ic_diamond, - { - exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) - parentFragmentManager.primaryNavigationFragment?.findNavController() - ?.navigate(R.id.action_homeSettingsFragment_to_earlyAccessFragment) - } - ) - ) - } +// Temporarily commented out for testing remove the code later. +// if (!BuildConfig.PREMIUM) { +// optionsList.add( +// 0, +// HomeSetting( +// R.string.get_early_access, +// R.string.get_early_access_description, +// R.drawable.ic_diamond, +// { +// exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true) +// parentFragmentManager.primaryNavigationFragment?.findNavController() +// ?.navigate(R.id.action_homeSettingsFragment_to_earlyAccessFragment) +// } +// ) +// ) +// } binding.homeSettingsList.apply { layoutManager = @@ -375,14 +375,14 @@ class HomeSettingsFragment : Fragment() { mainActivity, DocumentsContract.buildDocumentUri( DocumentProvider.AUTHORITY, - "${DocumentProvider.ROOT_ID}/log/yuzu_log.txt" + "${DocumentProvider.ROOT_ID}/log/suyu_log.txt" ) )!! val oldLog = DocumentFile.fromSingleUri( mainActivity, DocumentsContract.buildDocumentUri( DocumentProvider.AUTHORITY, - "${DocumentProvider.ROOT_ID}/log/yuzu_log.txt.old.txt" + "${DocumentProvider.ROOT_ID}/log/suyu_log.txt.old.txt" ) )!! diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/InstallableFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/InstallableFragment.kt similarity index 94% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/InstallableFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/InstallableFragment.kt index d218da1c88..07c917ba19 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/InstallableFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/InstallableFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.os.Bundle import android.view.LayoutInflater @@ -20,19 +20,19 @@ import com.google.android.material.transition.MaterialSharedAxis import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.adapters.InstallableAdapter -import org.yuzu.yuzu_emu.databinding.FragmentInstallablesBinding -import org.yuzu.yuzu_emu.model.HomeViewModel -import org.yuzu.yuzu_emu.model.Installable -import org.yuzu.yuzu_emu.model.TaskState -import org.yuzu.yuzu_emu.ui.main.MainActivity -import org.yuzu.yuzu_emu.utils.DirectoryInitialization -import org.yuzu.yuzu_emu.utils.FileUtil -import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins -import org.yuzu.yuzu_emu.utils.collect +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.adapters.InstallableAdapter +import org.suyu.suyu_emu.databinding.FragmentInstallablesBinding +import org.suyu.suyu_emu.model.HomeViewModel +import org.suyu.suyu_emu.model.Installable +import org.suyu.suyu_emu.model.TaskState +import org.suyu.suyu_emu.ui.main.MainActivity +import org.suyu.suyu_emu.utils.DirectoryInitialization +import org.suyu.suyu_emu.utils.FileUtil +import org.suyu.suyu_emu.utils.ViewUtils.updateMargins +import org.suyu.suyu_emu.utils.collect import java.io.BufferedOutputStream import java.io.File import java.math.BigInteger @@ -109,7 +109,7 @@ class InstallableFragment : Fragment() { ) if (!oldSaveDataFolder.exists() && !futureSaveDataFolder.exists()) { Toast.makeText( - YuzuApplication.appContext, + SuyuApplication.appContext, R.string.no_save_data_found, Toast.LENGTH_SHORT ).show() @@ -262,7 +262,7 @@ class InstallableFragment : Fragment() { cacheSaveDir.deleteRecursively() } catch (e: Exception) { Toast.makeText( - YuzuApplication.appContext, + SuyuApplication.appContext, getString(R.string.fatal_error), Toast.LENGTH_LONG ).show() diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/LaunchGameDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/LaunchGameDialogFragment.kt similarity index 88% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/LaunchGameDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/LaunchGameDialogFragment.kt index e1ac46c484..7e6c028fa4 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/LaunchGameDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/LaunchGameDialogFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.app.Dialog import android.content.DialogInterface @@ -9,10 +9,10 @@ import android.os.Bundle import androidx.fragment.app.DialogFragment import androidx.navigation.fragment.findNavController import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.yuzu.yuzu_emu.HomeNavigationDirections -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.model.Game -import org.yuzu.yuzu_emu.utils.SerializableHelper.parcelable +import org.suyu.suyu_emu.HomeNavigationDirections +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.model.Game +import org.suyu.suyu_emu.utils.SerializableHelper.parcelable class LaunchGameDialogFragment : DialogFragment() { private var selectedItem = 1 diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/LicenseBottomSheetDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/LicenseBottomSheetDialogFragment.kt similarity index 87% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/LicenseBottomSheetDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/LicenseBottomSheetDialogFragment.kt index 78419191c7..8ba5890824 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/LicenseBottomSheetDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/LicenseBottomSheetDialogFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.os.Bundle import android.view.LayoutInflater @@ -9,9 +9,9 @@ import android.view.View import android.view.ViewGroup import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialogFragment -import org.yuzu.yuzu_emu.databinding.DialogLicenseBinding -import org.yuzu.yuzu_emu.model.License -import org.yuzu.yuzu_emu.utils.SerializableHelper.parcelable +import org.suyu.suyu_emu.databinding.DialogLicenseBinding +import org.suyu.suyu_emu.model.License +import org.suyu.suyu_emu.utils.SerializableHelper.parcelable class LicenseBottomSheetDialogFragment : BottomSheetDialogFragment() { private var _binding: DialogLicenseBinding? = null diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/LicensesFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/LicensesFragment.kt similarity index 92% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/LicensesFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/LicensesFragment.kt index f17f621f85..213cb96800 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/LicensesFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/LicensesFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.os.Bundle import android.view.LayoutInflater @@ -16,12 +16,12 @@ import androidx.fragment.app.activityViewModels import androidx.navigation.findNavController import androidx.recyclerview.widget.LinearLayoutManager import com.google.android.material.transition.MaterialSharedAxis -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.adapters.LicenseAdapter -import org.yuzu.yuzu_emu.databinding.FragmentLicensesBinding -import org.yuzu.yuzu_emu.model.HomeViewModel -import org.yuzu.yuzu_emu.model.License -import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.adapters.LicenseAdapter +import org.suyu.suyu_emu.databinding.FragmentLicensesBinding +import org.suyu.suyu_emu.model.HomeViewModel +import org.suyu.suyu_emu.model.License +import org.suyu.suyu_emu.utils.ViewUtils.updateMargins class LicensesFragment : Fragment() { private var _binding: FragmentLicensesBinding? = null diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/MessageDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/MessageDialogFragment.kt similarity index 97% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/MessageDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/MessageDialogFragment.kt index c370964e11..5957645c76 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/MessageDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/MessageDialogFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.app.Dialog import android.content.Intent @@ -13,9 +13,9 @@ import androidx.fragment.app.FragmentActivity import androidx.fragment.app.activityViewModels import androidx.lifecycle.ViewModelProvider import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.model.MessageDialogViewModel -import org.yuzu.yuzu_emu.utils.Log +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.model.MessageDialogViewModel +import org.suyu.suyu_emu.utils.Log class MessageDialogFragment : DialogFragment() { private val messageDialogViewModel: MessageDialogViewModel by activityViewModels() diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/PermissionDeniedDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/PermissionDeniedDialogFragment.kt similarity index 91% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/PermissionDeniedDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/PermissionDeniedDialogFragment.kt index 3478b92500..82e00237b4 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/PermissionDeniedDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/PermissionDeniedDialogFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.app.Dialog import android.content.DialogInterface @@ -11,7 +11,7 @@ import android.os.Bundle import android.provider.Settings import androidx.fragment.app.DialogFragment import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.yuzu.yuzu_emu.R +import org.suyu.suyu_emu.R class PermissionDeniedDialogFragment : DialogFragment() { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/ProgressDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/ProgressDialogFragment.kt similarity index 93% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/ProgressDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/ProgressDialogFragment.kt index ee3bb0386a..45f7f1206e 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/ProgressDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/ProgressDialogFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.app.Dialog import android.os.Bundle @@ -15,11 +15,11 @@ import androidx.fragment.app.FragmentActivity import androidx.fragment.app.activityViewModels import androidx.lifecycle.ViewModelProvider import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.databinding.DialogProgressBarBinding -import org.yuzu.yuzu_emu.model.TaskViewModel -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible -import org.yuzu.yuzu_emu.utils.collect +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.databinding.DialogProgressBarBinding +import org.suyu.suyu_emu.model.TaskViewModel +import org.suyu.suyu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.utils.collect class ProgressDialogFragment : DialogFragment() { private val taskViewModel: TaskViewModel by activityViewModels() diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/ResetSettingsDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/ResetSettingsDialogFragment.kt similarity index 83% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/ResetSettingsDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/ResetSettingsDialogFragment.kt index 1b4b93ab81..97b2f646c8 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/ResetSettingsDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/ResetSettingsDialogFragment.kt @@ -1,14 +1,14 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.app.Dialog import android.os.Bundle import androidx.fragment.app.DialogFragment import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.features.settings.ui.SettingsActivity +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.features.settings.ui.SettingsActivity class ResetSettingsDialogFragment : DialogFragment() { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SearchFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/SearchFragment.kt similarity index 93% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SearchFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/SearchFragment.kt index 662ae9760a..5200c4e88c 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SearchFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/SearchFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.content.Context import android.content.SharedPreferences @@ -21,16 +21,16 @@ import androidx.preference.PreferenceManager import info.debatty.java.stringsimilarity.Jaccard import info.debatty.java.stringsimilarity.JaroWinkler import java.util.Locale -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.adapters.GameAdapter -import org.yuzu.yuzu_emu.databinding.FragmentSearchBinding -import org.yuzu.yuzu_emu.layout.AutofitGridLayoutManager -import org.yuzu.yuzu_emu.model.Game -import org.yuzu.yuzu_emu.model.GamesViewModel -import org.yuzu.yuzu_emu.model.HomeViewModel -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible -import org.yuzu.yuzu_emu.utils.collect +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.adapters.GameAdapter +import org.suyu.suyu_emu.databinding.FragmentSearchBinding +import org.suyu.suyu_emu.layout.AutofitGridLayoutManager +import org.suyu.suyu_emu.model.Game +import org.suyu.suyu_emu.model.GamesViewModel +import org.suyu.suyu_emu.model.HomeViewModel +import org.suyu.suyu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.utils.collect class SearchFragment : Fragment() { private var _binding: FragmentSearchBinding? = null @@ -58,7 +58,7 @@ class SearchFragment : Fragment() { super.onViewCreated(view, savedInstanceState) homeViewModel.setNavigationVisibility(visible = true, animated = true) homeViewModel.setStatusBarShadeVisibility(true) - preferences = PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext) + preferences = PreferenceManager.getDefaultSharedPreferences(SuyuApplication.appContext) if (savedInstanceState != null) { binding.searchText.setText(savedInstanceState.getString(SEARCH_TEXT)) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SetupFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/SetupFragment.kt similarity index 93% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SetupFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/SetupFragment.kt index 4f7548e98e..0576b2e9b5 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SetupFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/SetupFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.Manifest import android.content.Intent @@ -27,23 +27,23 @@ import androidx.preference.PreferenceManager import androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback import com.google.android.material.transition.MaterialFadeThrough import kotlinx.coroutines.launch -import org.yuzu.yuzu_emu.NativeLibrary +import org.suyu.suyu_emu.NativeLibrary import java.io.File -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.adapters.SetupAdapter -import org.yuzu.yuzu_emu.databinding.FragmentSetupBinding -import org.yuzu.yuzu_emu.features.settings.model.Settings -import org.yuzu.yuzu_emu.model.HomeViewModel -import org.yuzu.yuzu_emu.model.SetupCallback -import org.yuzu.yuzu_emu.model.SetupPage -import org.yuzu.yuzu_emu.model.StepState -import org.yuzu.yuzu_emu.ui.main.MainActivity -import org.yuzu.yuzu_emu.utils.DirectoryInitialization -import org.yuzu.yuzu_emu.utils.NativeConfig -import org.yuzu.yuzu_emu.utils.ViewUtils -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible -import org.yuzu.yuzu_emu.utils.collect +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.adapters.SetupAdapter +import org.suyu.suyu_emu.databinding.FragmentSetupBinding +import org.suyu.suyu_emu.features.settings.model.Settings +import org.suyu.suyu_emu.model.HomeViewModel +import org.suyu.suyu_emu.model.SetupCallback +import org.suyu.suyu_emu.model.SetupPage +import org.suyu.suyu_emu.model.StepState +import org.suyu.suyu_emu.ui.main.MainActivity +import org.suyu.suyu_emu.utils.DirectoryInitialization +import org.suyu.suyu_emu.utils.NativeConfig +import org.suyu.suyu_emu.utils.ViewUtils +import org.suyu.suyu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.utils.collect class SetupFragment : Fragment() { private var _binding: FragmentSetupBinding? = null @@ -100,7 +100,7 @@ class SetupFragment : Fragment() { pages.apply { add( SetupPage( - R.drawable.ic_yuzu_title, + R.drawable.ic_suyu_title, R.string.welcome, R.string.welcome_description, 0, @@ -343,7 +343,7 @@ class SetupFragment : Fragment() { } private fun finishSetup() { - PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext).edit() + PreferenceManager.getDefaultSharedPreferences(SuyuApplication.appContext).edit() .putBoolean(Settings.PREF_FIRST_APP_LAUNCH, false) .apply() mainActivity.finishSetup(binding.root.findNavController()) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SetupWarningDialogFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/SetupWarningDialogFragment.kt similarity index 95% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SetupWarningDialogFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/fragments/SetupWarningDialogFragment.kt index b2c1d54af3..ad6a8492a8 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SetupWarningDialogFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/fragments/SetupWarningDialogFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.fragments +package org.suyu.suyu_emu.fragments import android.app.Dialog import android.content.DialogInterface @@ -10,7 +10,7 @@ import android.net.Uri import android.os.Bundle import androidx.fragment.app.DialogFragment import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.yuzu.yuzu_emu.R +import org.suyu.suyu_emu.R class SetupWarningDialogFragment : DialogFragment() { private var titleId: Int = 0 diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/layout/AutofitGridLayoutManager.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/layout/AutofitGridLayoutManager.kt similarity index 94% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/layout/AutofitGridLayoutManager.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/layout/AutofitGridLayoutManager.kt index bdd6ea628f..855eb592b6 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/layout/AutofitGridLayoutManager.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/layout/AutofitGridLayoutManager.kt @@ -1,13 +1,13 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.layout +package org.suyu.suyu_emu.layout import android.content.Context import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.Recycler -import org.yuzu.yuzu_emu.R +import org.suyu.suyu_emu.R /** * Cut down version of the solution provided here diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/AddonViewModel.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/AddonViewModel.kt similarity index 94% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/AddonViewModel.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/AddonViewModel.kt index b9c8e49ca4..dc1fed395c 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/AddonViewModel.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/AddonViewModel.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope @@ -10,8 +10,8 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.utils.NativeConfig +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.utils.NativeConfig import java.util.concurrent.atomic.AtomicBoolean class AddonViewModel : ViewModel() { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Applet.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/Applet.kt similarity index 93% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Applet.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/Applet.kt index 8677674a38..43b72a6ba2 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Applet.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/Applet.kt @@ -1,11 +1,11 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model import androidx.annotation.DrawableRes import androidx.annotation.StringRes -import org.yuzu.yuzu_emu.R +import org.suyu.suyu_emu.R data class Applet( @StringRes val titleId: Int, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Driver.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/Driver.kt similarity index 81% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Driver.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/Driver.kt index de342212a2..849b88be4c 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Driver.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/Driver.kt @@ -1,9 +1,9 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model -import org.yuzu.yuzu_emu.utils.GpuDriverMetadata +import org.suyu.suyu_emu.utils.GpuDriverMetadata data class Driver( override var selected: Boolean, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/DriverViewModel.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/DriverViewModel.kt similarity index 90% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/DriverViewModel.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/DriverViewModel.kt index a49c887a12..252c981d0d 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/DriverViewModel.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/DriverViewModel.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope @@ -14,14 +14,14 @@ import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.features.settings.model.StringSetting -import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile -import org.yuzu.yuzu_emu.model.Driver.Companion.toDriver -import org.yuzu.yuzu_emu.utils.GpuDriverHelper -import org.yuzu.yuzu_emu.utils.GpuDriverMetadata -import org.yuzu.yuzu_emu.utils.NativeConfig +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.features.settings.model.StringSetting +import org.suyu.suyu_emu.features.settings.utils.SettingsFile +import org.suyu.suyu_emu.model.Driver.Companion.toDriver +import org.suyu.suyu_emu.utils.GpuDriverHelper +import org.suyu.suyu_emu.utils.GpuDriverMetadata +import org.suyu.suyu_emu.utils.NativeConfig import java.io.File class DriverViewModel : ViewModel() { @@ -70,7 +70,7 @@ class DriverViewModel : ViewModel() { val newDriverList = mutableListOf( Driver( selectedDriver == GpuDriverMetadata(), - YuzuApplication.appContext.getString(R.string.system_gpu_driver), + SuyuApplication.appContext.getString(R.string.system_gpu_driver), systemDriverData?.get(0) ?: "", systemDriverData?.get(1) ?: "" ) @@ -186,7 +186,7 @@ class DriverViewModel : ViewModel() { private fun updateName() { _selectedDriverTitle.value = GpuDriverHelper.customDriverSettingData.name - ?: YuzuApplication.appContext.getString(R.string.system_gpu_driver) + ?: SuyuApplication.appContext.getString(R.string.system_gpu_driver) } private fun setDriverReady() { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/EmulationViewModel.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/EmulationViewModel.kt similarity index 96% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/EmulationViewModel.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/EmulationViewModel.kt index d024493cd0..3b73ccdc5e 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/EmulationViewModel.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/EmulationViewModel.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model import androidx.lifecycle.ViewModel import kotlinx.coroutines.flow.MutableStateFlow diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Game.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/Game.kt similarity index 85% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Game.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/Game.kt index 6859b77806..819c14da43 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Game.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/Game.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model import android.content.Intent import android.net.Uri @@ -9,12 +9,12 @@ import android.os.Parcelable import java.util.HashSet import kotlinx.parcelize.Parcelize import kotlinx.serialization.Serializable -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.activities.EmulationActivity -import org.yuzu.yuzu_emu.utils.DirectoryInitialization -import org.yuzu.yuzu_emu.utils.FileUtil +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.activities.EmulationActivity +import org.suyu.suyu_emu.utils.DirectoryInitialization +import org.suyu.suyu_emu.utils.FileUtil import java.time.LocalDateTime import java.time.format.DateTimeFormatter @@ -52,7 +52,7 @@ class Game( } val saveZipName: String - get() = "$title ${YuzuApplication.appContext.getString(R.string.save_data).lowercase()} - ${ + get() = "$title ${SuyuApplication.appContext.getString(R.string.save_data).lowercase()} - ${ LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")) }.zip" @@ -64,7 +64,7 @@ class Game( get() = DirectoryInitialization.userDirectory + "/load/" + programIdHex + "/" val launchIntent: Intent - get() = Intent(YuzuApplication.appContext, EmulationActivity::class.java).apply { + get() = Intent(SuyuApplication.appContext, EmulationActivity::class.java).apply { action = Intent.ACTION_VIEW data = Uri.parse(path) } diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GameDir.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/GameDir.kt similarity index 71% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GameDir.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/GameDir.kt index 274bc1c7bc..e794ed82ac 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GameDir.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/GameDir.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model import android.os.Parcelable import kotlinx.parcelize.Parcelize diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GameProperties.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/GameProperties.kt similarity index 90% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GameProperties.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/GameProperties.kt index 0135a95beb..f5f951ee73 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GameProperties.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/GameProperties.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model import androidx.annotation.DrawableRes import androidx.annotation.StringRes diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GameVerificationResult.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/GameVerificationResult.kt similarity index 77% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GameVerificationResult.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/GameVerificationResult.kt index 804637fb8a..4c6968eb46 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GameVerificationResult.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/GameVerificationResult.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model enum class GameVerificationResult(val int: Int) { Success(0), diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GamesViewModel.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/GamesViewModel.kt similarity index 94% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GamesViewModel.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/GamesViewModel.kt index 5ae05b5cc2..8e63812732 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GamesViewModel.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/GamesViewModel.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model import android.net.Uri import androidx.documentfile.provider.DocumentFile @@ -17,10 +17,10 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import kotlinx.serialization.decodeFromString import kotlinx.serialization.json.Json -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.utils.GameHelper -import org.yuzu.yuzu_emu.utils.NativeConfig +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.utils.GameHelper +import org.suyu.suyu_emu.utils.NativeConfig import java.util.concurrent.atomic.AtomicBoolean class GamesViewModel : ViewModel() { @@ -94,7 +94,7 @@ class GamesViewModel : ViewModel() { if (firstStartup) { // Retrieve list of cached games val storedGames = - PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext) + PreferenceManager.getDefaultSharedPreferences(SuyuApplication.appContext) .getStringSet(GameHelper.KEY_GAMES, emptySet()) if (storedGames!!.isNotEmpty()) { val deserializedGames = mutableSetOf() @@ -109,7 +109,7 @@ class GamesViewModel : ViewModel() { val gameExists = DocumentFile.fromSingleUri( - YuzuApplication.appContext, + SuyuApplication.appContext, Uri.parse(game.path) )?.exists() if (gameExists == true) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/HomeSetting.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/HomeSetting.kt similarity index 83% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/HomeSetting.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/HomeSetting.kt index b32e193738..c603f6fecf 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/HomeSetting.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/HomeSetting.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/HomeViewModel.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/HomeViewModel.kt similarity index 96% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/HomeViewModel.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/HomeViewModel.kt index cfc777b81c..e9a1b03c9c 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/HomeViewModel.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/HomeViewModel.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model import android.net.Uri import androidx.lifecycle.ViewModel diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/InstallResult.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/InstallResult.kt similarity index 77% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/InstallResult.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/InstallResult.kt index 0c3cd0521e..e14c3d6fff 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/InstallResult.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/InstallResult.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model enum class InstallResult(val int: Int) { Success(0), diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Installable.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/Installable.kt similarity index 75% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Installable.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/Installable.kt index 36a7c97b8d..3f57dd7ad0 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Installable.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/Installable.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model import androidx.annotation.StringRes diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/License.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/License.kt similarity index 76% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/License.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/License.kt index f24d5cf341..630ff8dc26 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/License.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/License.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model import android.os.Parcelable import kotlinx.parcelize.Parcelize diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/MessageDialogViewModel.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/MessageDialogViewModel.kt similarity index 78% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/MessageDialogViewModel.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/MessageDialogViewModel.kt index 2db005e491..db3406da76 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/MessageDialogViewModel.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/MessageDialogViewModel.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model import androidx.lifecycle.ViewModel diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/MinimalDocumentFile.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/MinimalDocumentFile.kt similarity index 76% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/MinimalDocumentFile.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/MinimalDocumentFile.kt index b4b78e42d0..6f985268f0 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/MinimalDocumentFile.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/MinimalDocumentFile.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model import android.net.Uri import android.provider.DocumentsContract diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Patch.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/Patch.kt similarity index 74% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Patch.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/Patch.kt index 25cb9e3654..5849a6a366 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Patch.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/Patch.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model import androidx.annotation.Keep diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/PatchType.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/PatchType.kt similarity index 73% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/PatchType.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/PatchType.kt index e9a54162b0..461af65a21 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/PatchType.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/PatchType.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model enum class PatchType(val int: Int) { Update(0), diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SelectableItem.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/SelectableItem.kt similarity index 64% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SelectableItem.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/SelectableItem.kt index 11c22d3237..700ceac33a 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SelectableItem.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/SelectableItem.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model interface SelectableItem { var selected: Boolean diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SetupPage.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/SetupPage.kt similarity index 87% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SetupPage.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/SetupPage.kt index 09a128ae65..cccba01214 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SetupPage.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/SetupPage.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model data class SetupPage( val iconId: Int, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/TaskViewModel.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/model/TaskViewModel.kt similarity index 96% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/model/TaskViewModel.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/model/TaskViewModel.kt index 4361eb9726..f97a339872 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/TaskViewModel.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/model/TaskViewModel.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.model +package org.suyu.suyu_emu.model import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlay.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/overlay/InputOverlay.kt similarity index 98% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlay.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/overlay/InputOverlay.kt index 737e035840..aedc494dfb 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlay.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/overlay/InputOverlay.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.overlay +package org.suyu.suyu_emu.overlay import android.app.Activity import android.content.Context @@ -24,17 +24,17 @@ import androidx.core.content.ContextCompat import androidx.window.layout.WindowMetricsCalculator import kotlin.math.max import kotlin.math.min -import org.yuzu.yuzu_emu.features.input.NativeInput -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.features.input.model.NativeAnalog -import org.yuzu.yuzu_emu.features.input.model.NativeButton -import org.yuzu.yuzu_emu.features.input.model.NpadStyleIndex -import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting -import org.yuzu.yuzu_emu.features.settings.model.IntSetting -import org.yuzu.yuzu_emu.overlay.model.OverlayControl -import org.yuzu.yuzu_emu.overlay.model.OverlayControlData -import org.yuzu.yuzu_emu.overlay.model.OverlayLayout -import org.yuzu.yuzu_emu.utils.NativeConfig +import org.suyu.suyu_emu.features.input.NativeInput +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.features.input.model.NativeAnalog +import org.suyu.suyu_emu.features.input.model.NativeButton +import org.suyu.suyu_emu.features.input.model.NpadStyleIndex +import org.suyu.suyu_emu.features.settings.model.BooleanSetting +import org.suyu.suyu_emu.features.settings.model.IntSetting +import org.suyu.suyu_emu.overlay.model.OverlayControl +import org.suyu.suyu_emu.overlay.model.OverlayControlData +import org.suyu.suyu_emu.overlay.model.OverlayLayout +import org.suyu.suyu_emu.utils.NativeConfig /** * Draws the interactive input overlay on top of the diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlayDrawableButton.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/overlay/InputOverlayDrawableButton.kt similarity index 94% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlayDrawableButton.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/overlay/InputOverlayDrawableButton.kt index fee3d04ee3..a9e49f6ad0 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlayDrawableButton.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/overlay/InputOverlayDrawableButton.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.overlay +package org.suyu.suyu_emu.overlay import android.content.res.Resources import android.graphics.Bitmap @@ -9,9 +9,9 @@ import android.graphics.Canvas import android.graphics.Rect import android.graphics.drawable.BitmapDrawable import android.view.MotionEvent -import org.yuzu.yuzu_emu.features.input.NativeInput.ButtonState -import org.yuzu.yuzu_emu.features.input.model.NativeButton -import org.yuzu.yuzu_emu.overlay.model.OverlayControlData +import org.suyu.suyu_emu.features.input.NativeInput.ButtonState +import org.suyu.suyu_emu.features.input.model.NativeButton +import org.suyu.suyu_emu.overlay.model.OverlayControlData /** * Custom [BitmapDrawable] that is capable diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlayDrawableDpad.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/overlay/InputOverlayDrawableDpad.kt similarity index 97% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlayDrawableDpad.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/overlay/InputOverlayDrawableDpad.kt index 0cb6ff2440..c2d41119a8 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlayDrawableDpad.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/overlay/InputOverlayDrawableDpad.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.overlay +package org.suyu.suyu_emu.overlay import android.content.res.Resources import android.graphics.Bitmap @@ -9,8 +9,8 @@ import android.graphics.Canvas import android.graphics.Rect import android.graphics.drawable.BitmapDrawable import android.view.MotionEvent -import org.yuzu.yuzu_emu.features.input.NativeInput.ButtonState -import org.yuzu.yuzu_emu.features.input.model.NativeButton +import org.suyu.suyu_emu.features.input.NativeInput.ButtonState +import org.suyu.suyu_emu.features.input.model.NativeButton /** * Custom [BitmapDrawable] that is capable diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlayDrawableJoystick.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/overlay/InputOverlayDrawableJoystick.kt similarity index 96% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlayDrawableJoystick.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/overlay/InputOverlayDrawableJoystick.kt index 4b07107fca..6244d54197 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/InputOverlayDrawableJoystick.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/overlay/InputOverlayDrawableJoystick.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.overlay +package org.suyu.suyu_emu.overlay import android.content.res.Resources import android.graphics.Bitmap @@ -13,10 +13,10 @@ import kotlin.math.atan2 import kotlin.math.cos import kotlin.math.sin import kotlin.math.sqrt -import org.yuzu.yuzu_emu.features.input.NativeInput.ButtonState -import org.yuzu.yuzu_emu.features.input.model.NativeAnalog -import org.yuzu.yuzu_emu.features.input.model.NativeButton -import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting +import org.suyu.suyu_emu.features.input.NativeInput.ButtonState +import org.suyu.suyu_emu.features.input.model.NativeAnalog +import org.suyu.suyu_emu.features.input.model.NativeButton +import org.suyu.suyu_emu.features.settings.model.BooleanSetting /** * Custom [BitmapDrawable] that is capable diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/model/OverlayControl.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/overlay/model/OverlayControl.kt similarity index 97% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/model/OverlayControl.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/overlay/model/OverlayControl.kt index a0eeadf4bc..8293a57982 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/model/OverlayControl.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/overlay/model/OverlayControl.kt @@ -1,11 +1,11 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.overlay.model +package org.suyu.suyu_emu.overlay.model import androidx.annotation.IntegerRes -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication enum class OverlayControl( val id: String, @@ -136,7 +136,7 @@ enum class OverlayControl( fun getDefaultPositionForLayout(layout: OverlayLayout): Pair { val rawResourcePair: Pair - YuzuApplication.appContext.resources.apply { + SuyuApplication.appContext.resources.apply { rawResourcePair = when (layout) { OverlayLayout.Landscape -> { Pair( diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/model/OverlayControlData.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/overlay/model/OverlayControlData.kt similarity index 85% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/model/OverlayControlData.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/overlay/model/OverlayControlData.kt index 26cfeb1db5..00e7cd20ed 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/model/OverlayControlData.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/overlay/model/OverlayControlData.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.overlay.model +package org.suyu.suyu_emu.overlay.model data class OverlayControlData( val id: String, diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/model/OverlayControlDefault.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/overlay/model/OverlayControlDefault.kt similarity index 78% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/model/OverlayControlDefault.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/overlay/model/OverlayControlDefault.kt index 6bd74c82fe..c4e0a9a65b 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/model/OverlayControlDefault.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/overlay/model/OverlayControlDefault.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.overlay.model +package org.suyu.suyu_emu.overlay.model import androidx.annotation.IntegerRes diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/model/OverlayLayout.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/overlay/model/OverlayLayout.kt similarity index 64% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/model/OverlayLayout.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/overlay/model/OverlayLayout.kt index d728164e59..3b1cbaa092 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/overlay/model/OverlayLayout.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/overlay/model/OverlayLayout.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.overlay.model +package org.suyu.suyu_emu.overlay.model enum class OverlayLayout(val id: String) { Landscape("Landscape"), diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/GamesFragment.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/ui/GamesFragment.kt similarity index 91% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/GamesFragment.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/ui/GamesFragment.kt index fadb20e394..45d22dcd20 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/GamesFragment.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/ui/GamesFragment.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.ui +package org.suyu.suyu_emu.ui import android.os.Bundle import android.view.LayoutInflater @@ -14,15 +14,15 @@ import androidx.core.view.updatePadding import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import com.google.android.material.color.MaterialColors -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.adapters.GameAdapter -import org.yuzu.yuzu_emu.databinding.FragmentGamesBinding -import org.yuzu.yuzu_emu.layout.AutofitGridLayoutManager -import org.yuzu.yuzu_emu.model.GamesViewModel -import org.yuzu.yuzu_emu.model.HomeViewModel -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible -import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins -import org.yuzu.yuzu_emu.utils.collect +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.adapters.GameAdapter +import org.suyu.suyu_emu.databinding.FragmentGamesBinding +import org.suyu.suyu_emu.layout.AutofitGridLayoutManager +import org.suyu.suyu_emu.model.GamesViewModel +import org.suyu.suyu_emu.model.HomeViewModel +import org.suyu.suyu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.utils.ViewUtils.updateMargins +import org.suyu.suyu_emu.utils.collect class GamesFragment : Fragment() { private var _binding: FragmentGamesBinding? = null 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/suyu/suyu_emu/ui/main/MainActivity.kt similarity index 96% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/ui/main/MainActivity.kt index 757463a0b5..90fccd4acc 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/ui/main/MainActivity.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.ui.main +package org.suyu.suyu_emu.ui.main import android.content.Intent import android.net.Uri @@ -27,23 +27,23 @@ import com.google.android.material.color.MaterialColors import com.google.android.material.navigation.NavigationBarView import java.io.File import java.io.FilenameFilter -import org.yuzu.yuzu_emu.HomeNavigationDirections -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.databinding.ActivityMainBinding -import org.yuzu.yuzu_emu.features.settings.model.Settings -import org.yuzu.yuzu_emu.fragments.AddGameFolderDialogFragment -import org.yuzu.yuzu_emu.fragments.ProgressDialogFragment -import org.yuzu.yuzu_emu.fragments.MessageDialogFragment -import org.yuzu.yuzu_emu.model.AddonViewModel -import org.yuzu.yuzu_emu.model.DriverViewModel -import org.yuzu.yuzu_emu.model.GamesViewModel -import org.yuzu.yuzu_emu.model.HomeViewModel -import org.yuzu.yuzu_emu.model.InstallResult -import org.yuzu.yuzu_emu.model.TaskState -import org.yuzu.yuzu_emu.model.TaskViewModel -import org.yuzu.yuzu_emu.utils.* -import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible +import org.suyu.suyu_emu.HomeNavigationDirections +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.databinding.ActivityMainBinding +import org.suyu.suyu_emu.features.settings.model.Settings +import org.suyu.suyu_emu.fragments.AddGameFolderDialogFragment +import org.suyu.suyu_emu.fragments.ProgressDialogFragment +import org.suyu.suyu_emu.fragments.MessageDialogFragment +import org.suyu.suyu_emu.model.AddonViewModel +import org.suyu.suyu_emu.model.DriverViewModel +import org.suyu.suyu_emu.model.GamesViewModel +import org.suyu.suyu_emu.model.HomeViewModel +import org.suyu.suyu_emu.model.InstallResult +import org.suyu.suyu_emu.model.TaskState +import org.suyu.suyu_emu.model.TaskViewModel +import org.suyu.suyu_emu.utils.* +import org.suyu.suyu_emu.utils.ViewUtils.setVisible import java.io.BufferedInputStream import java.io.BufferedOutputStream import java.util.zip.ZipEntry @@ -642,21 +642,21 @@ class MainActivity : AppCompatActivity(), ThemeProvider { ) { progressCallback, _ -> val checkStream = ZipInputStream(BufferedInputStream(contentResolver.openInputStream(result))) - var isYuzuBackup = false + var isSuyuBackup = false checkStream.use { stream -> var ze: ZipEntry? = null while (stream.nextEntry?.also { ze = it } != null) { val itemName = ze!!.name.trim() if (itemName == "/config/config.ini" || itemName == "config/config.ini") { - isYuzuBackup = true + isSuyuBackup = true return@use } } } - if (!isYuzuBackup) { + if (!isSuyuBackup) { return@newInstance MessageDialogFragment.newInstance( this, - titleId = R.string.invalid_yuzu_backup, + titleId = R.string.invalid_suyu_backup, descriptionId = R.string.user_data_import_failed_description ) } diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/ThemeProvider.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/ui/main/ThemeProvider.kt similarity index 70% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/ThemeProvider.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/ui/main/ThemeProvider.kt index 511a6e4fa5..2e282779b2 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/ThemeProvider.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/ui/main/ThemeProvider.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.ui.main +package org.suyu.suyu_emu.ui.main interface ThemeProvider { /** diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/AddonUtil.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/AddonUtil.kt similarity index 61% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/AddonUtil.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/AddonUtil.kt index 8cc5ea71f2..6822a68868 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/AddonUtil.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/AddonUtil.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils object AddonUtil { val validAddonDirectories = listOf("cheats", "exefs", "romfs") diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/DirectoryInitialization.kt similarity index 92% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/DirectoryInitialization.kt index de0794a17f..e316a64b37 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/DirectoryInitialization.kt @@ -1,19 +1,19 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils import androidx.preference.PreferenceManager import java.io.IOException -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting -import org.yuzu.yuzu_emu.features.settings.model.IntSetting -import org.yuzu.yuzu_emu.features.settings.model.Settings -import org.yuzu.yuzu_emu.overlay.model.OverlayControlData -import org.yuzu.yuzu_emu.overlay.model.OverlayControl -import org.yuzu.yuzu_emu.overlay.model.OverlayLayout -import org.yuzu.yuzu_emu.utils.PreferenceUtil.migratePreference +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.features.settings.model.BooleanSetting +import org.suyu.suyu_emu.features.settings.model.IntSetting +import org.suyu.suyu_emu.features.settings.model.Settings +import org.suyu.suyu_emu.overlay.model.OverlayControlData +import org.suyu.suyu_emu.overlay.model.OverlayControl +import org.suyu.suyu_emu.overlay.model.OverlayLayout +import org.suyu.suyu_emu.utils.PreferenceUtil.migratePreference object DirectoryInitialization { private var userPath: String? = null @@ -38,7 +38,7 @@ object DirectoryInitialization { private fun initializeInternalStorage() { try { - userPath = YuzuApplication.appContext.getExternalFilesDir(null)!!.canonicalPath + userPath = SuyuApplication.appContext.getExternalFilesDir(null)!!.canonicalPath NativeLibrary.setAppDirectory(userPath!!) } catch (e: IOException) { e.printStackTrace() @@ -46,7 +46,7 @@ object DirectoryInitialization { } private fun migrateSettings() { - val preferences = PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext) + val preferences = PreferenceManager.getDefaultSharedPreferences(SuyuApplication.appContext) var saveConfig = false val theme = preferences.migratePreference(Settings.PREF_THEME) if (theme != null) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DocumentsTree.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/DocumentsTree.kt similarity index 96% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DocumentsTree.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/DocumentsTree.kt index 7382752970..c6485ba518 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DocumentsTree.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/DocumentsTree.kt @@ -1,13 +1,13 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils import android.net.Uri import androidx.documentfile.provider.DocumentFile import java.io.File import java.util.* -import org.yuzu.yuzu_emu.model.MinimalDocumentFile +import org.suyu.suyu_emu.model.MinimalDocumentFile class DocumentsTree { private var root: DocumentsNode? = null diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/FileUtil.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/FileUtil.kt similarity index 95% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/FileUtil.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/FileUtil.kt index fc2339f5a2..b1c4dae838 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/FileUtil.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/FileUtil.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils import android.database.Cursor import android.net.Uri @@ -14,9 +14,9 @@ import java.io.InputStream import java.net.URLDecoder import java.util.zip.ZipEntry import java.util.zip.ZipInputStream -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.model.MinimalDocumentFile -import org.yuzu.yuzu_emu.model.TaskState +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.model.MinimalDocumentFile +import org.suyu.suyu_emu.model.TaskState import java.io.BufferedOutputStream import java.io.OutputStream import java.lang.NullPointerException @@ -31,7 +31,7 @@ object FileUtil { const val APPLICATION_OCTET_STREAM = "application/octet-stream" const val TEXT_PLAIN = "text/plain" - private val context get() = YuzuApplication.appContext + private val context get() = SuyuApplication.appContext /** * Create a file from directory with filename. @@ -195,7 +195,7 @@ object FileUtil { * @return String display name */ fun getFilename(uri: Uri): String { - val resolver = YuzuApplication.appContext.contentResolver + val resolver = SuyuApplication.appContext.contentResolver val columns = arrayOf( DocumentsContract.Document.COLUMN_DISPLAY_NAME ) @@ -408,10 +408,10 @@ object FileUtil { val newFile = File(file, it.name!!) if (it.isDirectory) { newFile.mkdirs() - DocumentFile.fromTreeUri(YuzuApplication.appContext, it.uri)?.copyFilesTo(newFile) + DocumentFile.fromTreeUri(SuyuApplication.appContext, it.uri)?.copyFilesTo(newFile) } else { val inputStream = - YuzuApplication.appContext.contentResolver.openInputStream(it.uri) + SuyuApplication.appContext.contentResolver.openInputStream(it.uri) BufferedInputStream(inputStream).use { bos -> if (!newFile.exists()) { newFile.createNewFile() @@ -487,17 +487,17 @@ object FileUtil { String(stream.readBytes(), StandardCharsets.UTF_8) fun DocumentFile.inputStream(): InputStream = - YuzuApplication.appContext.contentResolver.openInputStream(uri)!! + SuyuApplication.appContext.contentResolver.openInputStream(uri)!! fun DocumentFile.outputStream(): OutputStream = - YuzuApplication.appContext.contentResolver.openOutputStream(uri)!! + SuyuApplication.appContext.contentResolver.openOutputStream(uri)!! fun Uri.inputStream(): InputStream = - YuzuApplication.appContext.contentResolver.openInputStream(this)!! + SuyuApplication.appContext.contentResolver.openInputStream(this)!! fun Uri.outputStream(): OutputStream = - YuzuApplication.appContext.contentResolver.openOutputStream(this)!! + SuyuApplication.appContext.contentResolver.openOutputStream(this)!! fun Uri.asDocumentFile(): DocumentFile? = - DocumentFile.fromSingleUri(YuzuApplication.appContext, this) + DocumentFile.fromSingleUri(SuyuApplication.appContext, this) } diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameHelper.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/GameHelper.kt similarity index 93% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameHelper.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/GameHelper.kt index 579b600f1a..7564475258 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameHelper.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/GameHelper.kt @@ -1,18 +1,18 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils import android.content.SharedPreferences import android.net.Uri import androidx.preference.PreferenceManager import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.model.Game -import org.yuzu.yuzu_emu.model.GameDir -import org.yuzu.yuzu_emu.model.MinimalDocumentFile +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.model.Game +import org.suyu.suyu_emu.model.GameDir +import org.suyu.suyu_emu.model.MinimalDocumentFile object GameHelper { private const val KEY_OLD_GAME_PATH = "game_path" @@ -22,7 +22,7 @@ object GameHelper { fun getGames(): List { val games = mutableListOf() - val context = YuzuApplication.appContext + val context = SuyuApplication.appContext preferences = PreferenceManager.getDefaultSharedPreferences(context) val gameDirs = mutableListOf() diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameIconUtils.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/GameIconUtils.kt similarity index 83% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameIconUtils.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/GameIconUtils.kt index d05020560a..1ec58284e1 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameIconUtils.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/GameIconUtils.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils import android.graphics.Bitmap import android.graphics.BitmapFactory @@ -21,9 +21,9 @@ import coil.key.Keyer import coil.memory.MemoryCache import coil.request.ImageRequest import coil.request.Options -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.model.Game +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.model.Game class GameIconFetcher( private val game: Game, @@ -58,20 +58,20 @@ class GameIconKeyer : Keyer { } object GameIconUtils { - private val imageLoader = ImageLoader.Builder(YuzuApplication.appContext) + private val imageLoader = ImageLoader.Builder(SuyuApplication.appContext) .components { add(GameIconKeyer()) add(GameIconFetcher.Factory()) } .memoryCache { - MemoryCache.Builder(YuzuApplication.appContext) + MemoryCache.Builder(SuyuApplication.appContext) .maxSizePercent(0.25) .build() } .build() fun loadGameIcon(game: Game, imageView: ImageView) { - val request = ImageRequest.Builder(YuzuApplication.appContext) + val request = ImageRequest.Builder(SuyuApplication.appContext) .data(game) .target(imageView) .error(R.drawable.default_icon) @@ -80,7 +80,7 @@ object GameIconUtils { } suspend fun getGameIcon(lifecycleOwner: LifecycleOwner, game: Game): Bitmap { - val request = ImageRequest.Builder(YuzuApplication.appContext) + val request = ImageRequest.Builder(SuyuApplication.appContext) .data(game) .lifecycle(lifecycleOwner) .error(R.drawable.default_icon) @@ -91,15 +91,15 @@ object GameIconUtils { suspend fun getShortcutIcon(lifecycleOwner: LifecycleOwner, game: Game): IconCompat { val layerDrawable = ResourcesCompat.getDrawable( - YuzuApplication.appContext.resources, + SuyuApplication.appContext.resources, R.drawable.shortcut, null ) as LayerDrawable layerDrawable.setDrawableByLayerId( R.id.shortcut_foreground, - getGameIcon(lifecycleOwner, game).toDrawable(YuzuApplication.appContext.resources) + getGameIcon(lifecycleOwner, game).toDrawable(SuyuApplication.appContext.resources) ) - val inset = YuzuApplication.appContext.resources + val inset = SuyuApplication.appContext.resources .getDimensionPixelSize(R.dimen.icon_inset) layerDrawable.setLayerInset(1, inset, inset, inset, inset) return IconCompat.createWithAdaptiveBitmap( diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameMetadata.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/GameMetadata.kt similarity index 83% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameMetadata.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/GameMetadata.kt index 8e412482a1..130f8010c1 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameMetadata.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/GameMetadata.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: Copyright 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils object GameMetadata { external fun getIsValid(path: String): Boolean diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GpuDriverHelper.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/GpuDriverHelper.kt similarity index 94% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GpuDriverHelper.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/GpuDriverHelper.kt index a72dea8f10..ec250fc079 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GpuDriverHelper.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/GpuDriverHelper.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils import android.graphics.SurfaceTexture import android.net.Uri @@ -9,9 +9,9 @@ import android.os.Build import android.view.Surface import java.io.File import java.io.IOException -import org.yuzu.yuzu_emu.NativeLibrary -import org.yuzu.yuzu_emu.YuzuApplication -import org.yuzu.yuzu_emu.features.settings.model.StringSetting +import org.suyu.suyu_emu.NativeLibrary +import org.suyu.suyu_emu.SuyuApplication +import org.suyu.suyu_emu.features.settings.model.StringSetting import java.io.FileNotFoundException import java.util.zip.ZipException import java.util.zip.ZipFile @@ -27,11 +27,11 @@ object GpuDriverHelper { fun initializeDriverParameters() { try { // Initialize the file redirection directory. - fileRedirectionPath = YuzuApplication.appContext + fileRedirectionPath = SuyuApplication.appContext .getExternalFilesDir(null)!!.canonicalPath + "/gpu/vk_file_redirect/" // Initialize the driver installation directory. - driverInstallationPath = YuzuApplication.appContext + driverInstallationPath = SuyuApplication.appContext .filesDir.canonicalPath + "/gpu_driver/" } catch (e: IOException) { throw RuntimeException(e) @@ -41,7 +41,7 @@ object GpuDriverHelper { initializeDirectories() // Initialize hook libraries directory. - hookLibPath = YuzuApplication.appContext.applicationInfo.nativeLibraryDir + "/" + hookLibPath = SuyuApplication.appContext.applicationInfo.nativeLibraryDir + "/" // Initialize GPU driver. NativeLibrary.initializeGpuDriver( diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GpuDriverMetadata.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/GpuDriverMetadata.kt similarity index 97% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GpuDriverMetadata.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/GpuDriverMetadata.kt index 511a4171a1..8da7ec8f7d 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GpuDriverMetadata.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/GpuDriverMetadata.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils import java.io.IOException import org.json.JSONException diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/InputHandler.kt similarity index 85% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/InputHandler.kt index 2c7356e6a7..c65b7bd297 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/InputHandler.kt @@ -1,17 +1,17 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils import android.view.InputDevice import android.view.KeyEvent import android.view.MotionEvent -import org.yuzu.yuzu_emu.features.input.NativeInput -import org.yuzu.yuzu_emu.features.input.YuzuInputOverlayDevice -import org.yuzu.yuzu_emu.features.input.YuzuPhysicalDevice +import org.suyu.suyu_emu.features.input.NativeInput +import org.suyu.suyu_emu.features.input.SuyuInputOverlayDevice +import org.suyu.suyu_emu.features.input.SuyuPhysicalDevice object InputHandler { - var androidControllers = mapOf() + var androidControllers = mapOf() var registeredControllers = mutableListOf() fun dispatchKeyEvent(event: KeyEvent): Boolean { @@ -50,8 +50,8 @@ object InputHandler { return true } - fun getDevices(): Map { - val gameControllerDeviceIds = mutableMapOf() + fun getDevices(): Map { + val gameControllerDeviceIds = mutableMapOf() val deviceIds = InputDevice.getDeviceIds() var port = 0 val inputSettings = NativeConfig.getInputSettings(true) @@ -62,7 +62,7 @@ object InputHandler { sources and InputDevice.SOURCE_JOYSTICK == InputDevice.SOURCE_JOYSTICK ) { if (!gameControllerDeviceIds.contains(controllerNumber)) { - gameControllerDeviceIds[controllerNumber] = YuzuPhysicalDevice( + gameControllerDeviceIds[controllerNumber] = SuyuPhysicalDevice( this, port, inputSettings[port].useSystemVibrator @@ -82,7 +82,7 @@ object InputHandler { } // Register the input overlay on a dedicated port for all player 1 vibrations - NativeInput.registerController(YuzuInputOverlayDevice(androidControllers.isEmpty(), 100)) + NativeInput.registerController(SuyuInputOverlayDevice(androidControllers.isEmpty(), 100)) registeredControllers.clear() NativeInput.getInputDevices().forEach { registeredControllers.add(ParamPackage(it)) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InsetsHelper.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/InsetsHelper.kt similarity index 88% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InsetsHelper.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/InsetsHelper.kt index 595f0d2847..974c6c5d62 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InsetsHelper.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/InsetsHelper.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils import android.annotation.SuppressLint import android.content.Context diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/LifecycleUtils.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/LifecycleUtils.kt similarity index 93% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/LifecycleUtils.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/LifecycleUtils.kt index d5c19c681e..eb6d2241c9 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/LifecycleUtils.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/LifecycleUtils.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleOwner diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/Log.kt similarity index 90% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/Log.kt index aebe84b0f1..f74a4fa521 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/Log.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils import android.os.Build diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/MemoryUtil.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/MemoryUtil.kt similarity index 94% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/MemoryUtil.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/MemoryUtil.kt index 0b94c73e52..32826edaea 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/MemoryUtil.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/MemoryUtil.kt @@ -1,18 +1,18 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils import android.app.ActivityManager import android.content.Context import android.os.Build -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.YuzuApplication +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.SuyuApplication import java.util.Locale import kotlin.math.ceil object MemoryUtil { - private val context get() = YuzuApplication.appContext + private val context get() = SuyuApplication.appContext private val Float.hundredths: String get() = String.format(Locale.ROOT, "%.2f", this) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/NativeConfig.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/NativeConfig.kt similarity index 95% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/NativeConfig.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/NativeConfig.kt index 7228f25d24..5be827a08b 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/NativeConfig.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/NativeConfig.kt @@ -1,12 +1,12 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils -import org.yuzu.yuzu_emu.model.GameDir -import org.yuzu.yuzu_emu.overlay.model.OverlayControlData +import org.suyu.suyu_emu.model.GameDir +import org.suyu.suyu_emu.overlay.model.OverlayControlData -import org.yuzu.yuzu_emu.features.input.model.PlayerInput +import org.suyu.suyu_emu.features.input.model.PlayerInput object NativeConfig { /** diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/NfcReader.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/NfcReader.kt similarity index 97% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/NfcReader.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/NfcReader.kt index 331b7ddca7..61c3fb3c84 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/NfcReader.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/NfcReader.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils import android.app.Activity import android.app.PendingIntent @@ -14,7 +14,7 @@ import android.os.Build import android.os.Handler import android.os.Looper import java.io.IOException -import org.yuzu.yuzu_emu.features.input.NativeInput +import org.suyu.suyu_emu.features.input.NativeInput class NfcReader(private val activity: Activity) { private var nfcAdapter: NfcAdapter? = null diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ParamPackage.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/ParamPackage.kt similarity index 98% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ParamPackage.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/ParamPackage.kt index 83fc7da3c0..c60df1752e 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ParamPackage.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/ParamPackage.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils // Kotlin version of src/common/param_package.h class ParamPackage(serialized: String = "") { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/PreferenceUtil.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/PreferenceUtil.kt similarity index 92% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/PreferenceUtil.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/PreferenceUtil.kt index a233ba25c7..226d9bcfd7 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/PreferenceUtil.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/PreferenceUtil.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils import android.content.SharedPreferences diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/SerializableHelper.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/SerializableHelper.kt similarity index 93% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/SerializableHelper.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/SerializableHelper.kt index 00e58faec7..9489ac48d5 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/SerializableHelper.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/SerializableHelper.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils import android.content.Intent import android.os.Build diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ThemeHelper.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/ThemeHelper.kt similarity index 86% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ThemeHelper.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/ThemeHelper.kt index 6f7f40e436..3f91773178 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ThemeHelper.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/ThemeHelper.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils import android.content.res.Configuration import android.graphics.Color @@ -12,10 +12,10 @@ import androidx.appcompat.app.AppCompatDelegate import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsControllerCompat import kotlin.math.roundToInt -import org.yuzu.yuzu_emu.R -import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting -import org.yuzu.yuzu_emu.features.settings.model.IntSetting -import org.yuzu.yuzu_emu.ui.main.ThemeProvider +import org.suyu.suyu_emu.R +import org.suyu.suyu_emu.features.settings.model.BooleanSetting +import org.suyu.suyu_emu.features.settings.model.IntSetting +import org.suyu.suyu_emu.ui.main.ThemeProvider object ThemeHelper { const val SYSTEM_BAR_ALPHA = 0.9f @@ -23,12 +23,12 @@ object ThemeHelper { fun setTheme(activity: AppCompatActivity) { setThemeMode(activity) when (Theme.from(IntSetting.THEME.getInt())) { - Theme.Default -> activity.setTheme(R.style.Theme_Yuzu_Main) + Theme.Default -> activity.setTheme(R.style.Theme_Suyu_Main) Theme.MaterialYou -> { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { - activity.setTheme(R.style.Theme_Yuzu_Main_MaterialYou) + activity.setTheme(R.style.Theme_Suyu_Main_MaterialYou) } else { - activity.setTheme(R.style.Theme_Yuzu_Main) + activity.setTheme(R.style.Theme_Suyu_Main) } } } @@ -37,7 +37,7 @@ object ThemeHelper { // light app mode, dark system mode, and black backgrounds. Launching the settings activity // will then show light mode colors/navigation bars but with black backgrounds. if (BooleanSetting.BLACK_BACKGROUNDS.getBoolean() && isNightMode(activity)) { - activity.setTheme(R.style.ThemeOverlay_Yuzu_Dark) + activity.setTheme(R.style.ThemeOverlay_Suyu_Dark) } } diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ViewUtils.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/ViewUtils.kt similarity index 96% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ViewUtils.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/utils/ViewUtils.kt index 244091aec2..cc7c1ab26d 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ViewUtils.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/utils/ViewUtils.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.utils +package org.suyu.suyu_emu.utils import android.text.TextUtils import android.view.View diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/viewholder/AbstractViewHolder.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/viewholder/AbstractViewHolder.kt similarity index 70% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/viewholder/AbstractViewHolder.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/viewholder/AbstractViewHolder.kt index 7101ad4343..f9c76b0493 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/viewholder/AbstractViewHolder.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/viewholder/AbstractViewHolder.kt @@ -1,12 +1,12 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.viewholder +package org.suyu.suyu_emu.viewholder import androidx.recyclerview.widget.RecyclerView import androidx.viewbinding.ViewBinding -import org.yuzu.yuzu_emu.adapters.AbstractDiffAdapter -import org.yuzu.yuzu_emu.adapters.AbstractListAdapter +import org.suyu.suyu_emu.adapters.AbstractDiffAdapter +import org.suyu.suyu_emu.adapters.AbstractListAdapter /** * [RecyclerView.ViewHolder] meant to work together with a [AbstractDiffAdapter] or a diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/views/FixedRatioSurfaceView.kt b/src/android/app/src/main/java/org/suyu/suyu_emu/views/FixedRatioSurfaceView.kt similarity index 96% rename from src/android/app/src/main/java/org/yuzu/yuzu_emu/views/FixedRatioSurfaceView.kt rename to src/android/app/src/main/java/org/suyu/suyu_emu/views/FixedRatioSurfaceView.kt index 2f0868c633..bc5346a026 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/views/FixedRatioSurfaceView.kt +++ b/src/android/app/src/main/java/org/suyu/suyu_emu/views/FixedRatioSurfaceView.kt @@ -1,7 +1,7 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -package org.yuzu.yuzu_emu.views +package org.suyu.suyu_emu.views import android.content.Context import android.util.AttributeSet diff --git a/src/android/app/src/main/jni/CMakeLists.txt b/src/android/app/src/main/jni/CMakeLists.txt index ec8ae5c57d..59349991bc 100644 --- a/src/android/app/src/main/jni/CMakeLists.txt +++ b/src/android/app/src/main/jni/CMakeLists.txt @@ -1,7 +1,7 @@ -# SPDX-FileCopyrightText: 2023 yuzu Emulator Project +# SPDX-FileCopyrightText: 2023 suyu Emulator Project # SPDX-License-Identifier: GPL-3.0-or-later -add_library(yuzu-android SHARED +add_library(suyu-android SHARED emu_window/emu_window.cpp emu_window/emu_window.h native.cpp @@ -15,12 +15,12 @@ add_library(yuzu-android SHARED native_input.cpp ) -set_property(TARGET yuzu-android PROPERTY IMPORTED_LOCATION ${FFmpeg_LIBRARY_DIR}) +set_property(TARGET suyu-android PROPERTY IMPORTED_LOCATION ${FFmpeg_LIBRARY_DIR}) -target_link_libraries(yuzu-android PRIVATE audio_core common core input_common frontend_common Vulkan::Headers) -target_link_libraries(yuzu-android PRIVATE android camera2ndk EGL glad jnigraphics log) +target_link_libraries(suyu-android PRIVATE audio_core common core input_common frontend_common Vulkan::Headers) +target_link_libraries(suyu-android PRIVATE android camera2ndk EGL glad jnigraphics log) if (ARCHITECTURE_arm64) - target_link_libraries(yuzu-android PRIVATE adrenotools) + target_link_libraries(suyu-android PRIVATE adrenotools) endif() -set(CPACK_PACKAGE_EXECUTABLES ${CPACK_PACKAGE_EXECUTABLES} yuzu-android) +set(CPACK_PACKAGE_EXECUTABLES ${CPACK_PACKAGE_EXECUTABLES} suyu-android) diff --git a/src/android/app/src/main/jni/android_config.cpp b/src/android/app/src/main/jni/android_config.cpp index a79a64afbb..c32eb0fc17 100644 --- a/src/android/app/src/main/jni/android_config.cpp +++ b/src/android/app/src/main/jni/android_config.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #include diff --git a/src/android/app/src/main/jni/android_config.h b/src/android/app/src/main/jni/android_config.h index 28ef5d0a8e..8f69b03567 100644 --- a/src/android/app/src/main/jni/android_config.h +++ b/src/android/app/src/main/jni/android_config.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/src/android/app/src/main/jni/android_settings.cpp b/src/android/app/src/main/jni/android_settings.cpp index 16023a6b05..6a54bb61d8 100644 --- a/src/android/app/src/main/jni/android_settings.cpp +++ b/src/android/app/src/main/jni/android_settings.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #include "android_settings.h" diff --git a/src/android/app/src/main/jni/android_settings.h b/src/android/app/src/main/jni/android_settings.h index 00baf86a9b..16ba078f80 100644 --- a/src/android/app/src/main/jni/android_settings.h +++ b/src/android/app/src/main/jni/android_settings.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/src/android/app/src/main/jni/emu_window/emu_window.cpp b/src/android/app/src/main/jni/emu_window/emu_window.cpp index 06db553691..a98f7891ca 100644 --- a/src/android/app/src/main/jni/emu_window/emu_window.cpp +++ b/src/android/app/src/main/jni/emu_window/emu_window.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later #include diff --git a/src/android/app/src/main/jni/emu_window/emu_window.h b/src/android/app/src/main/jni/emu_window/emu_window.h index d7b5fc6dac..23643984d7 100644 --- a/src/android/app/src/main/jni/emu_window/emu_window.h +++ b/src/android/app/src/main/jni/emu_window/emu_window.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later #pragma once diff --git a/src/android/app/src/main/jni/game_metadata.cpp b/src/android/app/src/main/jni/game_metadata.cpp index c33763b471..c9f3ed50f6 100644 --- a/src/android/app/src/main/jni/game_metadata.cpp +++ b/src/android/app/src/main/jni/game_metadata.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: Copyright 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #include "common/android/android_common.h" @@ -75,7 +75,7 @@ RomMetadata GetRomMetadata(const std::string& path, bool reload = false) { extern "C" { -jboolean Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getIsValid(JNIEnv* env, jobject obj, +jboolean Java_org_suyu_suyu_1emu_utils_GameMetadata_getIsValid(JNIEnv* env, jobject obj, jstring jpath) { const auto file = EmulationSession::GetInstance().System().GetFilesystem()->OpenFile( Common::Android::GetJString(env, jpath), FileSys::OpenMode::Read); @@ -101,31 +101,31 @@ jboolean Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getIsValid(JNIEnv* env, jobj return true; } -jstring Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getTitle(JNIEnv* env, jobject obj, +jstring Java_org_suyu_suyu_1emu_utils_GameMetadata_getTitle(JNIEnv* env, jobject obj, jstring jpath) { return Common::Android::ToJString( env, GetRomMetadata(Common::Android::GetJString(env, jpath)).title); } -jstring Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getProgramId(JNIEnv* env, jobject obj, +jstring Java_org_suyu_suyu_1emu_utils_GameMetadata_getProgramId(JNIEnv* env, jobject obj, jstring jpath) { return Common::Android::ToJString( env, std::to_string(GetRomMetadata(Common::Android::GetJString(env, jpath)).programId)); } -jstring Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getDeveloper(JNIEnv* env, jobject obj, +jstring Java_org_suyu_suyu_1emu_utils_GameMetadata_getDeveloper(JNIEnv* env, jobject obj, jstring jpath) { return Common::Android::ToJString( env, GetRomMetadata(Common::Android::GetJString(env, jpath)).developer); } -jstring Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getVersion(JNIEnv* env, jobject obj, +jstring Java_org_suyu_suyu_1emu_utils_GameMetadata_getVersion(JNIEnv* env, jobject obj, jstring jpath, jboolean jreload) { return Common::Android::ToJString( env, GetRomMetadata(Common::Android::GetJString(env, jpath), jreload).version); } -jbyteArray Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getIcon(JNIEnv* env, jobject obj, +jbyteArray Java_org_suyu_suyu_1emu_utils_GameMetadata_getIcon(JNIEnv* env, jobject obj, jstring jpath) { auto icon_data = GetRomMetadata(Common::Android::GetJString(env, jpath)).icon; jbyteArray icon = env->NewByteArray(static_cast(icon_data.size())); @@ -134,13 +134,13 @@ jbyteArray Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getIcon(JNIEnv* env, jobje return icon; } -jboolean Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getIsHomebrew(JNIEnv* env, jobject obj, +jboolean Java_org_suyu_suyu_1emu_utils_GameMetadata_getIsHomebrew(JNIEnv* env, jobject obj, jstring jpath) { return static_cast( GetRomMetadata(Common::Android::GetJString(env, jpath)).isHomebrew); } -void Java_org_yuzu_yuzu_1emu_utils_GameMetadata_resetMetadata(JNIEnv* env, jobject obj) { +void Java_org_suyu_suyu_1emu_utils_GameMetadata_resetMetadata(JNIEnv* env, jobject obj) { m_rom_metadata_cache.clear(); } diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp index 397436cf0e..0ce841575c 100644 --- a/src/android/app/src/main/jni/native.cpp +++ b/src/android/app/src/main/jni/native.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project & 2024 suyu Emulator Project +// SPDX-FileCopyrightText: Copyright 2023 suyu Emulator Project & 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #include @@ -435,24 +435,24 @@ static Core::SystemResultStatus RunEmulation(const std::string& filepath, extern "C" { -void Java_org_yuzu_yuzu_1emu_NativeLibrary_surfaceChanged(JNIEnv* env, jobject instance, +void Java_org_suyu_suyu_1emu_NativeLibrary_surfaceChanged(JNIEnv* env, jobject instance, [[maybe_unused]] jobject surf) { EmulationSession::GetInstance().SetNativeWindow(ANativeWindow_fromSurface(env, surf)); EmulationSession::GetInstance().SurfaceChanged(); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_surfaceDestroyed(JNIEnv* env, jobject instance) { +void Java_org_suyu_suyu_1emu_NativeLibrary_surfaceDestroyed(JNIEnv* env, jobject instance) { ANativeWindow_release(EmulationSession::GetInstance().NativeWindow()); EmulationSession::GetInstance().SetNativeWindow(nullptr); EmulationSession::GetInstance().SurfaceChanged(); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_setAppDirectory(JNIEnv* env, jobject instance, +void Java_org_suyu_suyu_1emu_NativeLibrary_setAppDirectory(JNIEnv* env, jobject instance, [[maybe_unused]] jstring j_directory) { Common::FS::SetAppDirectory(Common::Android::GetJString(env, j_directory)); } -int Java_org_yuzu_yuzu_1emu_NativeLibrary_installFileToNand(JNIEnv* env, jobject instance, +int Java_org_suyu_suyu_1emu_NativeLibrary_installFileToNand(JNIEnv* env, jobject instance, jstring j_file, jobject jcallback) { auto jlambdaClass = env->GetObjectClass(jcallback); auto jlambdaInvokeMethod = env->GetMethodID( @@ -470,7 +470,7 @@ int Java_org_yuzu_yuzu_1emu_NativeLibrary_installFileToNand(JNIEnv* env, jobject Common::Android::GetJString(env, j_file), callback)); } -jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_doesUpdateMatchProgram(JNIEnv* env, jobject jobj, +jboolean Java_org_suyu_suyu_1emu_NativeLibrary_doesUpdateMatchProgram(JNIEnv* env, jobject jobj, jstring jprogramId, jstring jupdatePath) { u64 program_id = EmulationSession::GetProgramId(env, jprogramId); @@ -491,7 +491,7 @@ jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_doesUpdateMatchProgram(JNIEnv* en return false; } -void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeGpuDriver(JNIEnv* env, jclass clazz, +void JNICALL Java_org_suyu_suyu_1emu_NativeLibrary_initializeGpuDriver(JNIEnv* env, jclass clazz, jstring hook_lib_dir, jstring custom_driver_dir, jstring custom_driver_name, @@ -513,7 +513,7 @@ void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeGpuDriver(JNIEnv* e return android_get_device_api_level() >= 28 && CheckKgslPresent(); } -jboolean JNICALL Java_org_yuzu_yuzu_1emu_utils_GpuDriverHelper_supportsCustomDriverLoading( +jboolean JNICALL Java_org_suyu_suyu_1emu_utils_GpuDriverHelper_supportsCustomDriverLoading( JNIEnv* env, jobject instance) { #ifdef ARCHITECTURE_arm64 // If the KGSL device exists custom drivers can be loaded using adrenotools @@ -523,7 +523,7 @@ jboolean JNICALL Java_org_yuzu_yuzu_1emu_utils_GpuDriverHelper_supportsCustomDri #endif } -jobjectArray Java_org_yuzu_yuzu_1emu_utils_GpuDriverHelper_getSystemDriverInfo( +jobjectArray Java_org_suyu_suyu_1emu_utils_GpuDriverHelper_getSystemDriverInfo( JNIEnv* env, jobject j_obj, jobject j_surf, jstring j_hook_lib_dir) { const char* file_redirect_dir_{}; int featureFlags{}; @@ -555,32 +555,32 @@ jobjectArray Java_org_yuzu_yuzu_1emu_utils_GpuDriverHelper_getSystemDriverInfo( return j_driver_info; } -jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_reloadKeys(JNIEnv* env, jclass clazz) { +jboolean Java_org_suyu_suyu_1emu_NativeLibrary_reloadKeys(JNIEnv* env, jclass clazz) { Core::Crypto::KeyManager::Instance().ReloadKeys(); return static_cast(Core::Crypto::KeyManager::Instance().AreKeysLoaded()); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_unpauseEmulation(JNIEnv* env, jclass clazz) { +void Java_org_suyu_suyu_1emu_NativeLibrary_unpauseEmulation(JNIEnv* env, jclass clazz) { EmulationSession::GetInstance().UnPauseEmulation(); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_pauseEmulation(JNIEnv* env, jclass clazz) { +void Java_org_suyu_suyu_1emu_NativeLibrary_pauseEmulation(JNIEnv* env, jclass clazz) { EmulationSession::GetInstance().PauseEmulation(); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_stopEmulation(JNIEnv* env, jclass clazz) { +void Java_org_suyu_suyu_1emu_NativeLibrary_stopEmulation(JNIEnv* env, jclass clazz) { EmulationSession::GetInstance().HaltEmulation(); } -jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isRunning(JNIEnv* env, jclass clazz) { +jboolean Java_org_suyu_suyu_1emu_NativeLibrary_isRunning(JNIEnv* env, jclass clazz) { return static_cast(EmulationSession::GetInstance().IsRunning()); } -jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isPaused(JNIEnv* env, jclass clazz) { +jboolean Java_org_suyu_suyu_1emu_NativeLibrary_isPaused(JNIEnv* env, jclass clazz) { return static_cast(EmulationSession::GetInstance().IsPaused()); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeSystem(JNIEnv* env, jclass clazz, +void Java_org_suyu_suyu_1emu_NativeLibrary_initializeSystem(JNIEnv* env, jclass clazz, jboolean reload) { // Initialize the emulated system. if (!reload) { @@ -589,7 +589,7 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeSystem(JNIEnv* env, jclass EmulationSession::GetInstance().InitializeSystem(reload); } -jdoubleArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getPerfStats(JNIEnv* env, jclass clazz) { +jdoubleArray Java_org_suyu_suyu_1emu_NativeLibrary_getPerfStats(JNIEnv* env, jclass clazz) { jdoubleArray j_stats = env->NewDoubleArray(4); if (EmulationSession::GetInstance().IsRunning()) { @@ -605,7 +605,7 @@ jdoubleArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getPerfStats(JNIEnv* env, jcl return j_stats; } -jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getCpuBackend(JNIEnv* env, jclass clazz) { +jstring Java_org_suyu_suyu_1emu_NativeLibrary_getCpuBackend(JNIEnv* env, jclass clazz) { if (Settings::IsNceEnabled()) { return Common::Android::ToJString(env, "NCE"); } @@ -613,21 +613,21 @@ jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getCpuBackend(JNIEnv* env, jclass return Common::Android::ToJString(env, "JIT"); } -jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getGpuDriver(JNIEnv* env, jobject jobj) { +jstring Java_org_suyu_suyu_1emu_NativeLibrary_getGpuDriver(JNIEnv* env, jobject jobj) { return Common::Android::ToJString( env, EmulationSession::GetInstance().System().GPU().Renderer().GetDeviceVendor()); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_applySettings(JNIEnv* env, jobject jobj) { +void Java_org_suyu_suyu_1emu_NativeLibrary_applySettings(JNIEnv* env, jobject jobj) { EmulationSession::GetInstance().System().ApplySettings(); EmulationSession::GetInstance().System().HIDCore().ReloadInputDevices(); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_logSettings(JNIEnv* env, jobject jobj) { +void Java_org_suyu_suyu_1emu_NativeLibrary_logSettings(JNIEnv* env, jobject jobj) { Settings::LogSettings(); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_run(JNIEnv* env, jobject jobj, jstring j_path, +void Java_org_suyu_suyu_1emu_NativeLibrary_run(JNIEnv* env, jobject jobj, jstring j_path, jint j_program_index, jboolean j_frontend_initiated) { const std::string path = Common::Android::GetJString(env, j_path); @@ -641,23 +641,23 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_run(JNIEnv* env, jobject jobj, jstrin } } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_logDeviceInfo(JNIEnv* env, jclass clazz) { - LOG_INFO(Frontend, "yuzu Version: {}-{}", Common::g_scm_branch, Common::g_scm_desc); +void Java_org_suyu_suyu_1emu_NativeLibrary_logDeviceInfo(JNIEnv* env, jclass clazz) { + LOG_INFO(Frontend, "suyu Version: {}-{}", Common::g_scm_branch, Common::g_scm_desc); LOG_INFO(Frontend, "Host OS: Android API level {}", android_get_device_api_level()); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_submitInlineKeyboardText(JNIEnv* env, jclass clazz, +void Java_org_suyu_suyu_1emu_NativeLibrary_submitInlineKeyboardText(JNIEnv* env, jclass clazz, jstring j_text) { const std::u16string input = Common::UTF8ToUTF16(Common::Android::GetJString(env, j_text)); EmulationSession::GetInstance().SoftwareKeyboard()->SubmitInlineKeyboardText(input); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_submitInlineKeyboardInput(JNIEnv* env, jclass clazz, +void Java_org_suyu_suyu_1emu_NativeLibrary_submitInlineKeyboardInput(JNIEnv* env, jclass clazz, jint j_key_code) { EmulationSession::GetInstance().SoftwareKeyboard()->SubmitInlineKeyboardInput(j_key_code); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeEmptyUserDirectory(JNIEnv* env, +void Java_org_suyu_suyu_1emu_NativeLibrary_initializeEmptyUserDirectory(JNIEnv* env, jobject instance) { const auto nand_dir = Common::FS::GetSuyuPath(Common::FS::SuyuPath::NANDDir); auto vfs_nand_dir = EmulationSession::GetInstance().System().GetFilesystem()->OpenDirectory( @@ -677,7 +677,7 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeEmptyUserDirectory(JNIEnv* } } -jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getAppletLaunchPath(JNIEnv* env, jclass clazz, +jstring Java_org_suyu_suyu_1emu_NativeLibrary_getAppletLaunchPath(JNIEnv* env, jclass clazz, jlong jid) { auto bis_system = EmulationSession::GetInstance().System().GetFileSystemController().GetSystemNANDContents(); @@ -694,18 +694,18 @@ jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getAppletLaunchPath(JNIEnv* env, j return Common::Android::ToJString(env, applet_nca->GetFullPath()); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_setCurrentAppletId(JNIEnv* env, jclass clazz, +void Java_org_suyu_suyu_1emu_NativeLibrary_setCurrentAppletId(JNIEnv* env, jclass clazz, jint jappletId) { EmulationSession::GetInstance().SetAppletId(jappletId); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_setCabinetMode(JNIEnv* env, jclass clazz, +void Java_org_suyu_suyu_1emu_NativeLibrary_setCabinetMode(JNIEnv* env, jclass clazz, jint jcabinetMode) { EmulationSession::GetInstance().System().GetFrontendAppletHolder().SetCabinetMode( static_cast(jcabinetMode)); } -jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isFirmwareAvailable(JNIEnv* env, jclass clazz) { +jboolean Java_org_suyu_suyu_1emu_NativeLibrary_isFirmwareAvailable(JNIEnv* env, jclass clazz) { auto bis_system = EmulationSession::GetInstance().System().GetFileSystemController().GetSystemNANDContents(); if (!bis_system) { @@ -721,7 +721,7 @@ jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isFirmwareAvailable(JNIEnv* env, return true; } -jobjectArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getPatchesForFile(JNIEnv* env, jobject jobj, +jobjectArray Java_org_suyu_suyu_1emu_NativeLibrary_getPatchesForFile(JNIEnv* env, jobject jobj, jstring jpath, jstring jprogramId) { const auto path = Common::Android::GetJString(env, jpath); @@ -757,27 +757,27 @@ jobjectArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getPatchesForFile(JNIEnv* env return jpatchArray; } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_removeUpdate(JNIEnv* env, jobject jobj, +void Java_org_suyu_suyu_1emu_NativeLibrary_removeUpdate(JNIEnv* env, jobject jobj, jstring jprogramId) { auto program_id = EmulationSession::GetProgramId(env, jprogramId); ContentManager::RemoveUpdate(EmulationSession::GetInstance().System().GetFileSystemController(), program_id); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_removeDLC(JNIEnv* env, jobject jobj, +void Java_org_suyu_suyu_1emu_NativeLibrary_removeDLC(JNIEnv* env, jobject jobj, jstring jprogramId) { auto program_id = EmulationSession::GetProgramId(env, jprogramId); ContentManager::RemoveAllDLC(EmulationSession::GetInstance().System(), program_id); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_removeMod(JNIEnv* env, jobject jobj, jstring jprogramId, +void Java_org_suyu_suyu_1emu_NativeLibrary_removeMod(JNIEnv* env, jobject jobj, jstring jprogramId, jstring jname) { auto program_id = EmulationSession::GetProgramId(env, jprogramId); ContentManager::RemoveMod(EmulationSession::GetInstance().System().GetFileSystemController(), program_id, Common::Android::GetJString(env, jname)); } -jobjectArray Java_org_yuzu_yuzu_1emu_NativeLibrary_verifyInstalledContents(JNIEnv* env, +jobjectArray Java_org_suyu_suyu_1emu_NativeLibrary_verifyInstalledContents(JNIEnv* env, jobject jobj, jobject jcallback) { auto jlambdaClass = env->GetObjectClass(jcallback); @@ -801,7 +801,7 @@ jobjectArray Java_org_yuzu_yuzu_1emu_NativeLibrary_verifyInstalledContents(JNIEn return jresult; } -jint Java_org_yuzu_yuzu_1emu_NativeLibrary_verifyGameContents(JNIEnv* env, jobject jobj, +jint Java_org_suyu_suyu_1emu_NativeLibrary_verifyGameContents(JNIEnv* env, jobject jobj, jstring jpath, jobject jcallback) { auto jlambdaClass = env->GetObjectClass(jcallback); auto jlambdaInvokeMethod = env->GetMethodID( @@ -817,7 +817,7 @@ jint Java_org_yuzu_yuzu_1emu_NativeLibrary_verifyGameContents(JNIEnv* env, jobje session.System(), Common::Android::GetJString(env, jpath), callback)); } -jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getSavePath(JNIEnv* env, jobject jobj, +jstring Java_org_suyu_suyu_1emu_NativeLibrary_getSavePath(JNIEnv* env, jobject jobj, jstring jprogramId) { auto program_id = EmulationSession::GetProgramId(env, jprogramId); if (program_id == 0) { @@ -841,7 +841,7 @@ jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getSavePath(JNIEnv* env, jobject j return Common::Android::ToJString(env, user_save_data_path); } -jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getDefaultProfileSaveDataRoot(JNIEnv* env, +jstring Java_org_suyu_suyu_1emu_NativeLibrary_getDefaultProfileSaveDataRoot(JNIEnv* env, jobject jobj, jboolean jfuture) { Service::Account::ProfileManager manager; @@ -854,17 +854,17 @@ jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getDefaultProfileSaveDataRoot(JNIE return Common::Android::ToJString(env, user_save_data_root); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_addFileToFilesystemProvider(JNIEnv* env, jobject jobj, +void Java_org_suyu_suyu_1emu_NativeLibrary_addFileToFilesystemProvider(JNIEnv* env, jobject jobj, jstring jpath) { EmulationSession::GetInstance().ConfigureFilesystemProvider( Common::Android::GetJString(env, jpath)); } -void Java_org_yuzu_yuzu_1emu_NativeLibrary_clearFilesystemProvider(JNIEnv* env, jobject jobj) { +void Java_org_suyu_suyu_1emu_NativeLibrary_clearFilesystemProvider(JNIEnv* env, jobject jobj) { EmulationSession::GetInstance().GetContentProvider()->ClearAllEntries(); } -jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_areKeysPresent(JNIEnv* env, jobject jobj) { +jboolean Java_org_suyu_suyu_1emu_NativeLibrary_areKeysPresent(JNIEnv* env, jobject jobj) { auto& system = EmulationSession::GetInstance().System(); system.GetFileSystemController().CreateFactories(*system.GetFilesystem()); return ContentManager::AreKeysPresent(); diff --git a/src/android/app/src/main/jni/native.h b/src/android/app/src/main/jni/native.h index 6a4551ada2..e03002e641 100644 --- a/src/android/app/src/main/jni/native.h +++ b/src/android/app/src/main/jni/native.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: Copyright 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #include diff --git a/src/android/app/src/main/jni/native_config.cpp b/src/android/app/src/main/jni/native_config.cpp index 0b26280c6c..e36fd9d7c3 100644 --- a/src/android/app/src/main/jni/native_config.cpp +++ b/src/android/app/src/main/jni/native_config.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #include @@ -34,23 +34,23 @@ Settings::Setting* getSetting(JNIEnv* env, jstring jkey) { extern "C" { -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_initializeGlobalConfig(JNIEnv* env, jobject obj) { +void Java_org_suyu_suyu_1emu_utils_NativeConfig_initializeGlobalConfig(JNIEnv* env, jobject obj) { global_config = std::make_unique(); } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_unloadGlobalConfig(JNIEnv* env, jobject obj) { +void Java_org_suyu_suyu_1emu_utils_NativeConfig_unloadGlobalConfig(JNIEnv* env, jobject obj) { global_config.reset(); } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_reloadGlobalConfig(JNIEnv* env, jobject obj) { +void Java_org_suyu_suyu_1emu_utils_NativeConfig_reloadGlobalConfig(JNIEnv* env, jobject obj) { global_config->AndroidConfig::ReloadAllValues(); } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_saveGlobalConfig(JNIEnv* env, jobject obj) { +void Java_org_suyu_suyu_1emu_utils_NativeConfig_saveGlobalConfig(JNIEnv* env, jobject obj) { global_config->AndroidConfig::SaveAllValues(); } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_initializePerGameConfig(JNIEnv* env, jobject obj, +void Java_org_suyu_suyu_1emu_utils_NativeConfig_initializePerGameConfig(JNIEnv* env, jobject obj, jstring jprogramId, jstring jfileName) { auto program_id = EmulationSession::GetProgramId(env, jprogramId); @@ -60,20 +60,20 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_initializePerGameConfig(JNIEnv* std::make_unique(config_file_name, Config::ConfigType::PerGameConfig); } -jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_isPerGameConfigLoaded(JNIEnv* env, +jboolean Java_org_suyu_suyu_1emu_utils_NativeConfig_isPerGameConfigLoaded(JNIEnv* env, jobject obj) { return per_game_config != nullptr; } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_savePerGameConfig(JNIEnv* env, jobject obj) { +void Java_org_suyu_suyu_1emu_utils_NativeConfig_savePerGameConfig(JNIEnv* env, jobject obj) { per_game_config->AndroidConfig::SaveAllValues(); } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_unloadPerGameConfig(JNIEnv* env, jobject obj) { +void Java_org_suyu_suyu_1emu_utils_NativeConfig_unloadPerGameConfig(JNIEnv* env, jobject obj) { per_game_config.reset(); } -jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getBoolean(JNIEnv* env, jobject obj, +jboolean Java_org_suyu_suyu_1emu_utils_NativeConfig_getBoolean(JNIEnv* env, jobject obj, jstring jkey, jboolean needGlobal) { auto setting = getSetting(env, jkey); if (setting == nullptr) { @@ -82,7 +82,7 @@ jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getBoolean(JNIEnv* env, jobj return setting->GetValue(static_cast(needGlobal)); } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setBoolean(JNIEnv* env, jobject obj, jstring jkey, +void Java_org_suyu_suyu_1emu_utils_NativeConfig_setBoolean(JNIEnv* env, jobject obj, jstring jkey, jboolean value) { auto setting = getSetting(env, jkey); if (setting == nullptr) { @@ -91,7 +91,7 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setBoolean(JNIEnv* env, jobject setting->SetValue(static_cast(value)); } -jbyte Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getByte(JNIEnv* env, jobject obj, jstring jkey, +jbyte Java_org_suyu_suyu_1emu_utils_NativeConfig_getByte(JNIEnv* env, jobject obj, jstring jkey, jboolean needGlobal) { auto setting = getSetting(env, jkey); if (setting == nullptr) { @@ -100,7 +100,7 @@ jbyte Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getByte(JNIEnv* env, jobject ob return setting->GetValue(static_cast(needGlobal)); } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setByte(JNIEnv* env, jobject obj, jstring jkey, +void Java_org_suyu_suyu_1emu_utils_NativeConfig_setByte(JNIEnv* env, jobject obj, jstring jkey, jbyte value) { auto setting = getSetting(env, jkey); if (setting == nullptr) { @@ -109,7 +109,7 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setByte(JNIEnv* env, jobject obj setting->SetValue(value); } -jshort Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getShort(JNIEnv* env, jobject obj, jstring jkey, +jshort Java_org_suyu_suyu_1emu_utils_NativeConfig_getShort(JNIEnv* env, jobject obj, jstring jkey, jboolean needGlobal) { auto setting = getSetting(env, jkey); if (setting == nullptr) { @@ -118,7 +118,7 @@ jshort Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getShort(JNIEnv* env, jobject return setting->GetValue(static_cast(needGlobal)); } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setShort(JNIEnv* env, jobject obj, jstring jkey, +void Java_org_suyu_suyu_1emu_utils_NativeConfig_setShort(JNIEnv* env, jobject obj, jstring jkey, jshort value) { auto setting = getSetting(env, jkey); if (setting == nullptr) { @@ -127,7 +127,7 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setShort(JNIEnv* env, jobject ob setting->SetValue(value); } -jint Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getInt(JNIEnv* env, jobject obj, jstring jkey, +jint Java_org_suyu_suyu_1emu_utils_NativeConfig_getInt(JNIEnv* env, jobject obj, jstring jkey, jboolean needGlobal) { auto setting = getSetting(env, jkey); if (setting == nullptr) { @@ -136,7 +136,7 @@ jint Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getInt(JNIEnv* env, jobject obj, return setting->GetValue(needGlobal); } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setInt(JNIEnv* env, jobject obj, jstring jkey, +void Java_org_suyu_suyu_1emu_utils_NativeConfig_setInt(JNIEnv* env, jobject obj, jstring jkey, jint value) { auto setting = getSetting(env, jkey); if (setting == nullptr) { @@ -145,7 +145,7 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setInt(JNIEnv* env, jobject obj, setting->SetValue(value); } -jfloat Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getFloat(JNIEnv* env, jobject obj, jstring jkey, +jfloat Java_org_suyu_suyu_1emu_utils_NativeConfig_getFloat(JNIEnv* env, jobject obj, jstring jkey, jboolean needGlobal) { auto setting = getSetting(env, jkey); if (setting == nullptr) { @@ -154,7 +154,7 @@ jfloat Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getFloat(JNIEnv* env, jobject return setting->GetValue(static_cast(needGlobal)); } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setFloat(JNIEnv* env, jobject obj, jstring jkey, +void Java_org_suyu_suyu_1emu_utils_NativeConfig_setFloat(JNIEnv* env, jobject obj, jstring jkey, jfloat value) { auto setting = getSetting(env, jkey); if (setting == nullptr) { @@ -163,7 +163,7 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setFloat(JNIEnv* env, jobject ob setting->SetValue(value); } -jlong Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getLong(JNIEnv* env, jobject obj, jstring jkey, +jlong Java_org_suyu_suyu_1emu_utils_NativeConfig_getLong(JNIEnv* env, jobject obj, jstring jkey, jboolean needGlobal) { auto setting = getSetting(env, jkey); if (setting == nullptr) { @@ -172,7 +172,7 @@ jlong Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getLong(JNIEnv* env, jobject ob return setting->GetValue(static_cast(needGlobal)); } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setLong(JNIEnv* env, jobject obj, jstring jkey, +void Java_org_suyu_suyu_1emu_utils_NativeConfig_setLong(JNIEnv* env, jobject obj, jstring jkey, jlong value) { auto setting = getSetting(env, jkey); if (setting == nullptr) { @@ -181,7 +181,7 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setLong(JNIEnv* env, jobject obj setting->SetValue(value); } -jstring Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getString(JNIEnv* env, jobject obj, jstring jkey, +jstring Java_org_suyu_suyu_1emu_utils_NativeConfig_getString(JNIEnv* env, jobject obj, jstring jkey, jboolean needGlobal) { auto setting = getSetting(env, jkey); if (setting == nullptr) { @@ -190,7 +190,7 @@ jstring Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getString(JNIEnv* env, jobjec return Common::Android::ToJString(env, setting->GetValue(static_cast(needGlobal))); } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setString(JNIEnv* env, jobject obj, jstring jkey, +void Java_org_suyu_suyu_1emu_utils_NativeConfig_setString(JNIEnv* env, jobject obj, jstring jkey, jstring value) { auto setting = getSetting(env, jkey); if (setting == nullptr) { @@ -200,7 +200,7 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setString(JNIEnv* env, jobject o setting->SetValue(Common::Android::GetJString(env, value)); } -jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getIsRuntimeModifiable(JNIEnv* env, jobject obj, +jboolean Java_org_suyu_suyu_1emu_utils_NativeConfig_getIsRuntimeModifiable(JNIEnv* env, jobject obj, jstring jkey) { auto setting = getSetting(env, jkey); if (setting != nullptr) { @@ -209,7 +209,7 @@ jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getIsRuntimeModifiable(JNIEn return true; } -jstring Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getPairedSettingKey(JNIEnv* env, jobject obj, +jstring Java_org_suyu_suyu_1emu_utils_NativeConfig_getPairedSettingKey(JNIEnv* env, jobject obj, jstring jkey) { auto setting = getSetting(env, jkey); if (setting == nullptr) { @@ -222,7 +222,7 @@ jstring Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getPairedSettingKey(JNIEnv* e return Common::Android::ToJString(env, setting->PairedSetting()->GetLabel()); } -jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getIsSwitchable(JNIEnv* env, jobject obj, +jboolean Java_org_suyu_suyu_1emu_utils_NativeConfig_getIsSwitchable(JNIEnv* env, jobject obj, jstring jkey) { auto setting = getSetting(env, jkey); if (setting != nullptr) { @@ -231,7 +231,7 @@ jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getIsSwitchable(JNIEnv* env, return false; } -jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_usingGlobal(JNIEnv* env, jobject obj, +jboolean Java_org_suyu_suyu_1emu_utils_NativeConfig_usingGlobal(JNIEnv* env, jobject obj, jstring jkey) { auto setting = getSetting(env, jkey); if (setting != nullptr) { @@ -240,7 +240,7 @@ jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_usingGlobal(JNIEnv* env, job return true; } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setGlobal(JNIEnv* env, jobject obj, jstring jkey, +void Java_org_suyu_suyu_1emu_utils_NativeConfig_setGlobal(JNIEnv* env, jobject obj, jstring jkey, jboolean global) { auto setting = getSetting(env, jkey); if (setting != nullptr) { @@ -248,7 +248,7 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setGlobal(JNIEnv* env, jobject o } } -jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getIsSaveable(JNIEnv* env, jobject obj, +jboolean Java_org_suyu_suyu_1emu_utils_NativeConfig_getIsSaveable(JNIEnv* env, jobject obj, jstring jkey) { auto setting = getSetting(env, jkey); if (setting != nullptr) { @@ -257,7 +257,7 @@ jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getIsSaveable(JNIEnv* env, j return false; } -jstring Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getDefaultToString(JNIEnv* env, jobject obj, +jstring Java_org_suyu_suyu_1emu_utils_NativeConfig_getDefaultToString(JNIEnv* env, jobject obj, jstring jkey) { auto setting = getSetting(env, jkey); if (setting != nullptr) { @@ -266,7 +266,7 @@ jstring Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getDefaultToString(JNIEnv* en return Common::Android::ToJString(env, ""); } -jobjectArray Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getGameDirs(JNIEnv* env, jobject obj) { +jobjectArray Java_org_suyu_suyu_1emu_utils_NativeConfig_getGameDirs(JNIEnv* env, jobject obj) { jclass gameDirClass = Common::Android::GetGameDirClass(); jmethodID gameDirConstructor = Common::Android::GetGameDirConstructor(); jobjectArray jgameDirArray = @@ -281,7 +281,7 @@ jobjectArray Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getGameDirs(JNIEnv* env, return jgameDirArray; } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setGameDirs(JNIEnv* env, jobject obj, +void Java_org_suyu_suyu_1emu_utils_NativeConfig_setGameDirs(JNIEnv* env, jobject obj, jobjectArray gameDirs) { AndroidSettings::values.game_dirs.clear(); int size = env->GetArrayLength(gameDirs); @@ -304,7 +304,7 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setGameDirs(JNIEnv* env, jobject } } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_addGameDir(JNIEnv* env, jobject obj, +void Java_org_suyu_suyu_1emu_utils_NativeConfig_addGameDir(JNIEnv* env, jobject obj, jobject gameDir) { jclass gameDirClass = Common::Android::GetGameDirClass(); jfieldID uriStringField = env->GetFieldID(gameDirClass, "uriString", "Ljava/lang/String;"); @@ -317,7 +317,7 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_addGameDir(JNIEnv* env, jobject AndroidSettings::GameDir{uriString, static_cast(jdeepScanBoolean)}); } -jobjectArray Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getDisabledAddons(JNIEnv* env, jobject obj, +jobjectArray Java_org_suyu_suyu_1emu_utils_NativeConfig_getDisabledAddons(JNIEnv* env, jobject obj, jstring jprogramId) { auto program_id = EmulationSession::GetProgramId(env, jprogramId); auto& disabledAddons = Settings::values.disabled_addons[program_id]; @@ -331,7 +331,7 @@ jobjectArray Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getDisabledAddons(JNIEnv return jdisabledAddonsArray; } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setDisabledAddons(JNIEnv* env, jobject obj, +void Java_org_suyu_suyu_1emu_utils_NativeConfig_setDisabledAddons(JNIEnv* env, jobject obj, jstring jprogramId, jobjectArray jdisabledAddons) { auto program_id = EmulationSession::GetProgramId(env, jprogramId); @@ -345,7 +345,7 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setDisabledAddons(JNIEnv* env, j Settings::values.disabled_addons[program_id] = disabled_addons; } -jobjectArray Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getOverlayControlData(JNIEnv* env, +jobjectArray Java_org_suyu_suyu_1emu_utils_NativeConfig_getOverlayControlData(JNIEnv* env, jobject obj) { jobjectArray joverlayControlDataArray = env->NewObjectArray(AndroidSettings::values.overlay_control_data.size(), @@ -375,7 +375,7 @@ jobjectArray Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getOverlayControlData(JN return joverlayControlDataArray; } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setOverlayControlData( +void Java_org_suyu_suyu_1emu_utils_NativeConfig_setOverlayControlData( JNIEnv* env, jobject obj, jobjectArray joverlayControlDataArray) { AndroidSettings::values.overlay_control_data.clear(); int size = env->GetArrayLength(joverlayControlDataArray); @@ -424,7 +424,7 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setOverlayControlData( } } -jobjectArray Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getInputSettings(JNIEnv* env, jobject obj, +jobjectArray Java_org_suyu_suyu_1emu_utils_NativeConfig_getInputSettings(JNIEnv* env, jobject obj, jboolean j_global) { Settings::values.players.SetGlobal(static_cast(j_global)); auto& players = Settings::values.players.GetValue(); @@ -474,7 +474,7 @@ jobjectArray Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getInputSettings(JNIEnv* return j_input_settings; } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setInputSettings(JNIEnv* env, jobject obj, +void Java_org_suyu_suyu_1emu_utils_NativeConfig_setInputSettings(JNIEnv* env, jobject obj, jobjectArray j_value, jboolean j_global) { auto& players = Settings::values.players.GetValue(static_cast(j_global)); @@ -530,7 +530,7 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setInputSettings(JNIEnv* env, jo } } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_saveControlPlayerValues(JNIEnv* env, jobject obj) { +void Java_org_suyu_suyu_1emu_utils_NativeConfig_saveControlPlayerValues(JNIEnv* env, jobject obj) { Settings::values.players.SetGlobal(false); // Clear all controls from the config in case the user reverted back to globals diff --git a/src/android/app/src/main/jni/native_input.cpp b/src/android/app/src/main/jni/native_input.cpp index c261f19d6f..d7f9d22ff2 100644 --- a/src/android/app/src/main/jni/native_input.cpp +++ b/src/android/app/src/main/jni/native_input.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2024 yuzu Emulator Project & 2024 suyu Emulator Project +// SPDX-FileCopyrightText: 2024 suyu Emulator Project & 2024 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #include @@ -185,24 +185,24 @@ void ConnectController(size_t player_index, bool connected) { extern "C" { -jboolean Java_org_yuzu_yuzu_1emu_features_input_NativeInput_isHandheldOnly(JNIEnv* env, +jboolean Java_org_suyu_suyu_1emu_features_input_NativeInput_isHandheldOnly(JNIEnv* env, jobject j_obj) { return IsHandheldOnly(); } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onGamePadButtonEvent( +void Java_org_suyu_suyu_1emu_features_input_NativeInput_onGamePadButtonEvent( JNIEnv* env, jobject j_obj, jstring j_guid, jint j_port, jint j_button_id, jint j_action) { EmulationSession::GetInstance().GetInputSubsystem().GetAndroid()->SetButtonState( Common::Android::GetJString(env, j_guid), j_port, j_button_id, j_action != 0); } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onGamePadAxisEvent( +void Java_org_suyu_suyu_1emu_features_input_NativeInput_onGamePadAxisEvent( JNIEnv* env, jobject j_obj, jstring j_guid, jint j_port, jint j_stick_id, jfloat j_value) { EmulationSession::GetInstance().GetInputSubsystem().GetAndroid()->SetAxisPosition( Common::Android::GetJString(env, j_guid), j_port, j_stick_id, j_value); } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onGamePadMotionEvent( +void Java_org_suyu_suyu_1emu_features_input_NativeInput_onGamePadMotionEvent( JNIEnv* env, jobject j_obj, jstring j_guid, jint j_port, jlong j_delta_timestamp, jfloat j_x_gyro, jfloat j_y_gyro, jfloat j_z_gyro, jfloat j_x_accel, jfloat j_y_accel, jfloat j_z_accel) { @@ -211,7 +211,7 @@ void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onGamePadMotionEvent( j_z_gyro, j_x_accel, j_y_accel, j_z_accel); } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onReadNfcTag(JNIEnv* env, jobject j_obj, +void Java_org_suyu_suyu_1emu_features_input_NativeInput_onReadNfcTag(JNIEnv* env, jobject j_obj, jbyteArray j_data) { jboolean isCopy{false}; std::span data(reinterpret_cast(env->GetByteArrayElements(j_data, &isCopy)), @@ -222,13 +222,13 @@ void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onReadNfcTag(JNIEnv* env } } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onRemoveNfcTag(JNIEnv* env, jobject j_obj) { +void Java_org_suyu_suyu_1emu_features_input_NativeInput_onRemoveNfcTag(JNIEnv* env, jobject j_obj) { if (EmulationSession::GetInstance().IsRunning()) { EmulationSession::GetInstance().GetInputSubsystem().GetVirtualAmiibo()->CloseAmiibo(); } } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onTouchPressed(JNIEnv* env, jobject j_obj, +void Java_org_suyu_suyu_1emu_features_input_NativeInput_onTouchPressed(JNIEnv* env, jobject j_obj, jint j_id, jfloat j_x_axis, jfloat j_y_axis) { if (EmulationSession::GetInstance().IsRunning()) { @@ -236,7 +236,7 @@ void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onTouchPressed(JNIEnv* e } } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onTouchMoved(JNIEnv* env, jobject j_obj, +void Java_org_suyu_suyu_1emu_features_input_NativeInput_onTouchMoved(JNIEnv* env, jobject j_obj, jint j_id, jfloat j_x_axis, jfloat j_y_axis) { if (EmulationSession::GetInstance().IsRunning()) { @@ -244,14 +244,14 @@ void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onTouchMoved(JNIEnv* env } } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onTouchReleased(JNIEnv* env, jobject j_obj, +void Java_org_suyu_suyu_1emu_features_input_NativeInput_onTouchReleased(JNIEnv* env, jobject j_obj, jint j_id) { if (EmulationSession::GetInstance().IsRunning()) { EmulationSession::GetInstance().Window().OnTouchReleased(j_id); } } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onOverlayButtonEventImpl( +void Java_org_suyu_suyu_1emu_features_input_NativeInput_onOverlayButtonEventImpl( JNIEnv* env, jobject j_obj, jint j_port, jint j_button_id, jint j_action) { if (EmulationSession::GetInstance().IsRunning()) { EmulationSession::GetInstance().GetInputSubsystem().GetVirtualGamepad()->SetButtonState( @@ -259,7 +259,7 @@ void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onOverlayButtonEventImpl } } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onOverlayJoystickEventImpl( +void Java_org_suyu_suyu_1emu_features_input_NativeInput_onOverlayJoystickEventImpl( JNIEnv* env, jobject j_obj, jint j_port, jint j_stick_id, jfloat j_x_axis, jfloat j_y_axis) { if (EmulationSession::GetInstance().IsRunning()) { EmulationSession::GetInstance().GetInputSubsystem().GetVirtualGamepad()->SetStickPosition( @@ -267,7 +267,7 @@ void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onOverlayJoystickEventIm } } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onDeviceMotionEvent( +void Java_org_suyu_suyu_1emu_features_input_NativeInput_onDeviceMotionEvent( JNIEnv* env, jobject j_obj, jint j_port, jlong j_delta_timestamp, jfloat j_x_gyro, jfloat j_y_gyro, jfloat j_z_gyro, jfloat j_x_accel, jfloat j_y_accel, jfloat j_z_accel) { if (EmulationSession::GetInstance().IsRunning()) { @@ -277,18 +277,18 @@ void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_onDeviceMotionEvent( } } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_reloadInputDevices(JNIEnv* env, +void Java_org_suyu_suyu_1emu_features_input_NativeInput_reloadInputDevices(JNIEnv* env, jobject j_obj) { EmulationSession::GetInstance().System().HIDCore().ReloadInputDevices(); } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_registerController(JNIEnv* env, +void Java_org_suyu_suyu_1emu_features_input_NativeInput_registerController(JNIEnv* env, jobject j_obj, jobject j_device) { EmulationSession::GetInstance().GetInputSubsystem().GetAndroid()->RegisterController(j_device); } -jobjectArray Java_org_yuzu_yuzu_1emu_features_input_NativeInput_getInputDevices(JNIEnv* env, +jobjectArray Java_org_suyu_suyu_1emu_features_input_NativeInput_getInputDevices(JNIEnv* env, jobject j_obj) { auto devices = EmulationSession::GetInstance().GetInputSubsystem().GetInputDevices(); jobjectArray jdevices = env->NewObjectArray(devices.size(), Common::Android::GetStringClass(), @@ -300,7 +300,7 @@ jobjectArray Java_org_yuzu_yuzu_1emu_features_input_NativeInput_getInputDevices( return jdevices; } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_loadInputProfiles(JNIEnv* env, +void Java_org_suyu_suyu_1emu_features_input_NativeInput_loadInputProfiles(JNIEnv* env, jobject j_obj) { map_profiles.clear(); const auto input_profile_loc = @@ -326,7 +326,7 @@ void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_loadInputProfiles(JNIEnv } } -jobjectArray Java_org_yuzu_yuzu_1emu_features_input_NativeInput_getInputProfileNames( +jobjectArray Java_org_suyu_suyu_1emu_features_input_NativeInput_getInputProfileNames( JNIEnv* env, jobject j_obj) { std::vector profile_names; profile_names.reserve(map_profiles.size()); @@ -356,14 +356,14 @@ jobjectArray Java_org_yuzu_yuzu_1emu_features_input_NativeInput_getInputProfileN return j_profile_names; } -jboolean Java_org_yuzu_yuzu_1emu_features_input_NativeInput_isProfileNameValid(JNIEnv* env, +jboolean Java_org_suyu_suyu_1emu_features_input_NativeInput_isProfileNameValid(JNIEnv* env, jobject j_obj, jstring j_name) { return Common::Android::GetJString(env, j_name).find_first_of("<>:;\"/\\|,.!?*") == std::string::npos; } -jboolean Java_org_yuzu_yuzu_1emu_features_input_NativeInput_createProfile(JNIEnv* env, +jboolean Java_org_suyu_suyu_1emu_features_input_NativeInput_createProfile(JNIEnv* env, jobject j_obj, jstring j_name, jint j_player_index) { @@ -379,7 +379,7 @@ jboolean Java_org_yuzu_yuzu_1emu_features_input_NativeInput_createProfile(JNIEnv return SaveProfile(profile_name, j_player_index); } -jboolean Java_org_yuzu_yuzu_1emu_features_input_NativeInput_deleteProfile(JNIEnv* env, +jboolean Java_org_suyu_suyu_1emu_features_input_NativeInput_deleteProfile(JNIEnv* env, jobject j_obj, jstring j_name, jint j_player_index) { @@ -397,21 +397,21 @@ jboolean Java_org_yuzu_yuzu_1emu_features_input_NativeInput_deleteProfile(JNIEnv return !ProfileExistsInMap(profile_name) && !ProfileExistsInFilesystem(profile_name); } -jboolean Java_org_yuzu_yuzu_1emu_features_input_NativeInput_loadProfile(JNIEnv* env, jobject j_obj, +jboolean Java_org_suyu_suyu_1emu_features_input_NativeInput_loadProfile(JNIEnv* env, jobject j_obj, jstring j_name, jint j_player_index) { auto profile_name = Common::Android::GetJString(env, j_name); return LoadProfile(profile_name, j_player_index); } -jboolean Java_org_yuzu_yuzu_1emu_features_input_NativeInput_saveProfile(JNIEnv* env, jobject j_obj, +jboolean Java_org_suyu_suyu_1emu_features_input_NativeInput_saveProfile(JNIEnv* env, jobject j_obj, jstring j_name, jint j_player_index) { auto profile_name = Common::Android::GetJString(env, j_name); return SaveProfile(profile_name, j_player_index); } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_loadPerGameConfiguration( +void Java_org_suyu_suyu_1emu_features_input_NativeInput_loadPerGameConfiguration( JNIEnv* env, jobject j_obj, jint j_player_index, jint j_selected_index, jstring j_selected_profile_name) { static constexpr size_t HANDHELD_INDEX = 8; @@ -459,23 +459,23 @@ void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_loadPerGameConfiguration handheld_controller->ReloadFromSettings(); } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_beginMapping(JNIEnv* env, jobject j_obj, +void Java_org_suyu_suyu_1emu_features_input_NativeInput_beginMapping(JNIEnv* env, jobject j_obj, jint jtype) { EmulationSession::GetInstance().GetInputSubsystem().BeginMapping( static_cast(jtype)); } -jstring Java_org_yuzu_yuzu_1emu_features_input_NativeInput_getNextInput(JNIEnv* env, +jstring Java_org_suyu_suyu_1emu_features_input_NativeInput_getNextInput(JNIEnv* env, jobject j_obj) { return Common::Android::ToJString( env, EmulationSession::GetInstance().GetInputSubsystem().GetNextInput().Serialize()); } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_stopMapping(JNIEnv* env, jobject j_obj) { +void Java_org_suyu_suyu_1emu_features_input_NativeInput_stopMapping(JNIEnv* env, jobject j_obj) { EmulationSession::GetInstance().GetInputSubsystem().StopMapping(); } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_updateMappingsWithDefaultImpl( +void Java_org_suyu_suyu_1emu_features_input_NativeInput_updateMappingsWithDefaultImpl( JNIEnv* env, jobject j_obj, jint j_player_index, jstring j_device_params, jstring j_display_name) { auto& input_subsystem = EmulationSession::GetInstance().GetInputSubsystem(); @@ -515,7 +515,7 @@ void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_updateMappingsWithDefaul } } -jstring Java_org_yuzu_yuzu_1emu_features_input_NativeInput_getButtonParamImpl(JNIEnv* env, +jstring Java_org_suyu_suyu_1emu_features_input_NativeInput_getButtonParamImpl(JNIEnv* env, jobject j_obj, jint j_player_index, jint j_button) { @@ -527,7 +527,7 @@ jstring Java_org_yuzu_yuzu_1emu_features_input_NativeInput_getButtonParamImpl(JN .Serialize()); } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_setButtonParamImpl( +void Java_org_suyu_suyu_1emu_features_input_NativeInput_setButtonParamImpl( JNIEnv* env, jobject j_obj, jint j_player_index, jint j_button_id, jstring j_param) { ApplyControllerConfig(j_player_index, [&](Core::HID::EmulatedController* controller) { controller->SetButtonParam(j_button_id, @@ -535,7 +535,7 @@ void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_setButtonParamImpl( }); } -jstring Java_org_yuzu_yuzu_1emu_features_input_NativeInput_getStickParamImpl(JNIEnv* env, +jstring Java_org_suyu_suyu_1emu_features_input_NativeInput_getStickParamImpl(JNIEnv* env, jobject j_obj, jint j_player_index, jint j_stick) { @@ -547,7 +547,7 @@ jstring Java_org_yuzu_yuzu_1emu_features_input_NativeInput_getStickParamImpl(JNI .Serialize()); } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_setStickParamImpl( +void Java_org_suyu_suyu_1emu_features_input_NativeInput_setStickParamImpl( JNIEnv* env, jobject j_obj, jint j_player_index, jint j_stick_id, jstring j_param) { ApplyControllerConfig(j_player_index, [&](Core::HID::EmulatedController* controller) { controller->SetStickParam(j_stick_id, @@ -555,14 +555,14 @@ void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_setStickParamImpl( }); } -jint Java_org_yuzu_yuzu_1emu_features_input_NativeInput_getButtonNameImpl(JNIEnv* env, +jint Java_org_suyu_suyu_1emu_features_input_NativeInput_getButtonNameImpl(JNIEnv* env, jobject j_obj, jstring j_param) { return static_cast(EmulationSession::GetInstance().GetInputSubsystem().GetButtonName( Common::ParamPackage(Common::Android::GetJString(env, j_param)))); } -jintArray Java_org_yuzu_yuzu_1emu_features_input_NativeInput_getSupportedStyleTagsImpl( +jintArray Java_org_suyu_suyu_1emu_features_input_NativeInput_getSupportedStyleTagsImpl( JNIEnv* env, jobject j_obj, jint j_player_index) { auto supported_styles = GetSupportedStyles(j_player_index); jintArray j_supported_indexes = env->NewIntArray(supported_styles.size()); @@ -571,7 +571,7 @@ jintArray Java_org_yuzu_yuzu_1emu_features_input_NativeInput_getSupportedStyleTa return j_supported_indexes; } -jint Java_org_yuzu_yuzu_1emu_features_input_NativeInput_getStyleIndexImpl(JNIEnv* env, +jint Java_org_suyu_suyu_1emu_features_input_NativeInput_getStyleIndexImpl(JNIEnv* env, jobject j_obj, jint j_player_index) { return static_cast(EmulationSession::GetInstance() @@ -581,7 +581,7 @@ jint Java_org_yuzu_yuzu_1emu_features_input_NativeInput_getStyleIndexImpl(JNIEnv ->GetNpadStyleIndex(true)); } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_setStyleIndexImpl(JNIEnv* env, +void Java_org_suyu_suyu_1emu_features_input_NativeInput_setStyleIndexImpl(JNIEnv* env, jobject j_obj, jint j_player_index, jint j_style_index) { @@ -598,14 +598,14 @@ void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_setStyleIndexImpl(JNIEnv } } -jboolean Java_org_yuzu_yuzu_1emu_features_input_NativeInput_isControllerImpl(JNIEnv* env, +jboolean Java_org_suyu_suyu_1emu_features_input_NativeInput_isControllerImpl(JNIEnv* env, jobject j_obj, jstring jparams) { return static_cast(EmulationSession::GetInstance().GetInputSubsystem().IsController( Common::ParamPackage(Common::Android::GetJString(env, jparams)))); } -jboolean Java_org_yuzu_yuzu_1emu_features_input_NativeInput_getIsConnected(JNIEnv* env, +jboolean Java_org_suyu_suyu_1emu_features_input_NativeInput_getIsConnected(JNIEnv* env, jobject j_obj, jint j_player_index) { auto& hid_core = EmulationSession::GetInstance().System().HIDCore(); @@ -617,7 +617,7 @@ jboolean Java_org_yuzu_yuzu_1emu_features_input_NativeInput_getIsConnected(JNIEn return controller->IsConnected(true); } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_connectControllersImpl( +void Java_org_suyu_suyu_1emu_features_input_NativeInput_connectControllersImpl( JNIEnv* env, jobject j_obj, jbooleanArray j_connected) { jboolean isCopy = false; auto j_connected_array_size = env->GetArrayLength(j_connected); @@ -627,7 +627,7 @@ void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_connectControllersImpl( } } -void Java_org_yuzu_yuzu_1emu_features_input_NativeInput_resetControllerMappings( +void Java_org_suyu_suyu_1emu_features_input_NativeInput_resetControllerMappings( JNIEnv* env, jobject j_obj, jint j_player_index) { // Clear all previous mappings for (int button_id = 0; button_id < Settings::NativeButton::NumButtons; ++button_id) { diff --git a/src/android/app/src/main/jni/native_log.cpp b/src/android/app/src/main/jni/native_log.cpp index 95dd1f0573..66b8e4676e 100644 --- a/src/android/app/src/main/jni/native_log.cpp +++ b/src/android/app/src/main/jni/native_log.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 yuzu Emulator Project +// SPDX-FileCopyrightText: 2023 suyu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #include @@ -7,23 +7,23 @@ extern "C" { -void Java_org_yuzu_yuzu_1emu_utils_Log_debug(JNIEnv* env, jobject obj, jstring jmessage) { +void Java_org_suyu_suyu_1emu_utils_Log_debug(JNIEnv* env, jobject obj, jstring jmessage) { LOG_DEBUG(Frontend, "{}", Common::Android::GetJString(env, jmessage)); } -void Java_org_yuzu_yuzu_1emu_utils_Log_warning(JNIEnv* env, jobject obj, jstring jmessage) { +void Java_org_suyu_suyu_1emu_utils_Log_warning(JNIEnv* env, jobject obj, jstring jmessage) { LOG_WARNING(Frontend, "{}", Common::Android::GetJString(env, jmessage)); } -void Java_org_yuzu_yuzu_1emu_utils_Log_info(JNIEnv* env, jobject obj, jstring jmessage) { +void Java_org_suyu_suyu_1emu_utils_Log_info(JNIEnv* env, jobject obj, jstring jmessage) { LOG_INFO(Frontend, "{}", Common::Android::GetJString(env, jmessage)); } -void Java_org_yuzu_yuzu_1emu_utils_Log_error(JNIEnv* env, jobject obj, jstring jmessage) { +void Java_org_suyu_suyu_1emu_utils_Log_error(JNIEnv* env, jobject obj, jstring jmessage) { LOG_ERROR(Frontend, "{}", Common::Android::GetJString(env, jmessage)); } -void Java_org_yuzu_yuzu_1emu_utils_Log_critical(JNIEnv* env, jobject obj, jstring jmessage) { +void Java_org_suyu_suyu_1emu_utils_Log_critical(JNIEnv* env, jobject obj, jstring jmessage) { LOG_CRITICAL(Frontend, "{}", Common::Android::GetJString(env, jmessage)); } diff --git a/src/android/app/src/main/res/drawable-hdpi/ic_stat_notification_logo.png b/src/android/app/src/main/res/drawable-hdpi/ic_stat_notification_logo.png index 66ebfa85c475537475e6deb531425e2b3ce3d611..89631162e4be7db8ff0053331d7cdc558b6074c3 100644 GIT binary patch literal 6213 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 DQm+QR literal 46179 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

dh4K|N#r-xC{B9Ps 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 Gaqxd^t!#M! literal 48264 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 diff --git a/src/android/app/src/main/res/drawable-xhdpi/tv_banner.png b/src/android/app/src/main/res/drawable-xhdpi/tv_banner.png index 20c770591d6c77151e620780031c978062755b23..50fae003fa34ca6909e82924458767617a2624e0 100644 GIT binary patch literal 9224 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 P?E$DLYA968nT7oy6~d?b literal 7764 zcmdsc^;;Bg`1O!Ww}5m>Nr-eKtq4eWN&2C4>BdDsQt2*f=}w6SltwyT>F!$K9pCHy z>HQDB-@UHcnQL}to_p_k?sK1Wo=@-8l<;w=Z~y?nf2}O92>>WE;Bh?`CiuPa_ktMQ zVY?_BxB~z|@4pQN?p$I8o_y+|pzopOY~um7aI*%WP$JL&3l(Q4vX))o zKvZ%Z?ov!0JH?EG5)sZm$u)^0AR`B@W1rNJH#bME9pFMo#b&V@TQ1u~gE@Wmbw1S8 zftGGv)vRQc!JprJ+pUDIzvSmvAd-#5JXzrhCX#KBK#eELHy{fRCmP8ISi(~Ko#&iV~WvmG<92wb28x4R&Rv`L+{H5nBJTg3&LQ^Z1peXyY??W)tZP^o`Z*Lt{^=_lQc}9K(qo*Yr@>Q)S1O zpzKuibRmt?C;;52jYT$+{wx}(SL|Ec?2?2Hyi%8ak=kxTz{nzV?Ex(OD9{i-#SnPd zV~_L=Yx>C;j!wCXCld=lfMv@ZT&ICC__R^UDhHpo00K&Extli_+sgZh15GSOl+kaf z)upQi&A0nBSj9xMf$zw6BCr_ytUHN=X;h9; z-Itns#{`mE(}{Uv_JB=n9Ry*+;nd#BQT$95vEB>owR)LXT#RYdbgHrkNujGV!1nATD^EsHcdoB6QeGDPlk<+ zEiKyVvMx&_>K1nt1@Xj zzFU1XP1y5sRVaIl#TX1_*S~u_% z>@+AZFOP@zs)))z&r5Xoxahd8ynNxaB6Ex)LJ}Sp7S`iRBd?JKlMn0Zt_a)mQOJI; zP1rqpZDmY<7S%f@pCu7_ry>Qgm7L8fMjHQnan30&akaHCom1B8v;)w|V_ubHp9`V) zc5npg?dyq;BkFX>0{eJr#l7$_FfeL629Kvdk+QiwAbp%u*6Xx8&?=~Jn7EdGUo0{| z9z7pvuVx4-FDb!NP*5l{jz)-7n6!}-N+XXY9YYz`?ypw$iU@*=41sjZBp3TRbQ?dr zji)S!{*R*-1Ye)IqKW{OOfX%5e7u6>4}EQIElV$9^BH-{;RB5pH}G9`Frp->Gc#|8 zHBp!s%~lWkYr@2NPds7h{%k?G2LTC@izw;E(10Du)9%VINCsb%Ck=%QuXxMVR#sNx zM?^$$>irGU#_n$X@?f`j!BE$sGz3`_Uz}#|=U8UQr6#oclXD;cl_}0y0qt`BLWFI% zU7wZ_`ZhyI)oqX%AR{OLGgE2w|DJKnR-5Li0l#A2pL{Jie5{Pa#t^}eP*{m^OMuh$ zM3S_jIG#7ZZD-)&AbO|4j-* zn}Aw(MyuMsP~-c?D$@1iQ7fu^6L3OX#)|qMbzG5Uh>_co5q1wS?h~K$nH^!Su8YTY zR^dcMeh|Zz;;&~gvMrKS{KScgN68?%2LaxwsGMBPnw1+TJZhdpb*FbGrjPh`a5EN( z&qkb{@qSNtA-Ha+LfgA=-0q!_#g`YA7_;mN#YoiZbr7P~tuo$;C_|>?qs%2rQC`No z3^i_B21Sg*O#KJ*=$+x1a?gu*>=^Jh2EwsP$D5qZh8i6g8}rJ_-fTo6Gr+s{&C|+D zw03#j|Hguu_|1bCGJ%p>x!3nH03uuJ96!j;!h+t?(vs--`Sa)NYeXEFmPd|T@@7dL z-|gs=O`X);vajv+4mjZqOZD!`>-*k{w!PjfQS2V~sp5%EOcM-iszz8&pFE_MB~p@- zdW|hz4i*}u`0qz^*u5ZjpQ2zJogzbxccVy?(x05gn$zn68Q7#;7W(gT6+e?gBM4o* zDrTD)Cq8wv^d*2bDe;IrOLU~*HSGiIU%QI^1v_~#?dzRijnzNDeQB-uQvqD!V76P~ z_KLM(n{dx~O0$_)*3e>;h4!JHZH=WEbK(G}XJ?F9=SM$jqcF_b>?hDPf=e4^OMjLP zFrm`Vt9lPneVociWQXfx>3`UkVY$F25w^0id4KJ)(;s$qv>KPh77)Y~@?GBBKx`hmEip@CD6 zOrH!_#?LPNuWNwHthn|~xm+j;ZUrNO+%ZNL2DA53g|8e^MP44=W;ByyURO^KrkY`Q z@K&9JJUH~VZ#L8FjyIGu2r4^`&}$^xOb?|A?!P6F*9v0T`B7m|NA&b5$9&^|zd1cT zJirLoG~N&8J#-Dswib3q6On$TR)BNosN&I6d}!d19(hIEjWN2^~D4EBdi;#ZvBZ z4$|O!td;+g9Y{idFK>=#;2f}i;Uiby0NNFxA@V;46POdy(!j9%uAFj~d`8VUF0p3kz9>8ZY){5t}0!V6x}H zWZxh74k40Dyo-2t>Vy_PHxFHxLEMB2A@9r>Fmmtm3kvug7X*eH)6=QIep(J@O^XXq zZK`@hceFi09k2h3FFviuqF|)kfgTPSJ>6JeUuf-3nObUbC#K?DR?5!FA&h=jolWi^ z@*c&mor5;`GWT7opf|;Ji@7{$0q=|GCZ>0nX?tLgY*IN^0ed;6xL1YMVvQyI_^Rt} z73a-^Oby^6uu;ih6Q`MSVPNAj$ELiBG2p_4d6F%SS@%&<8UNe6H{VS=wA*xZ*F*?# z$+>{B)w?~rrp21~{W!eZMfk%Q<|7!#LOV)rn|M2V$PlNdtb0m{)H5XCoI^65Z{dt( z>4cq?*BWUfIP9N17+s>na~>W=AD@=tCm&#Lz2*+O=(EQ04)#NosBL`8r7Cw7Kl2F$ zW4`-W<3WQf0IQ4VLyl|RA!RF$n4!7348PI^Rcb3+TAtDeoF{;fh|c#54L6bE_A!2u zI=%ocNldvkDDv8AK;su_gZo7;wR)VX^MCC1rV6IuQNC(nWnsxxr{7pky5a}H^ zdN9a8CK2}K3t9gty`6V9JQM?$Ws!>^b!c zO`;$SKp)LA+6q?(Nj-?$)3Lv25Lyrfv55RfoqUk1KKGH3kf3qyyeWonJ=TalK zViwW&y>Qm6#&mT@5psM9{{Da4$;HLRT(fJz@ROP@KZfJZ#~iI^fM=Ft*mVh#Ab1puei2kS#+8qxY|ayb>-;JrLwY;v5hNX%Vvc z4$$kAzl}y#88yYuH-g0VSB7xh&1KDVi7~{@Ru23lK6QL%=DyRXtL^y~8@zO8y|keWFXY~h9OX157bXUgY2(VMRTtc4qsn|a+@`=| z)mFbzPql0<*GZhM_LVSjhMDLX8b+Eh_@*4vA{t!WcoH@BC? z>N&Al;?Vc&KO(Sjlb{wxGtzDiXyfMb*;Ru$c6#kMn;D6#4eU{-W}7P%4*HP5Gq;5;B7IPkvwwaQCGX-aUWd#Ltr){w@G4gU@Vn*|| z#SWZ4kP;^dZg6v$(RebF*G~QL`MlF7HJO_V>D;YkYplxiLus6%rLpZjOYW47*nt5> zF8yl2ezxl1C5ZB*bpFS$;=UW`>w^;(2NVU<8#&e(Z>_9Y@G!$10$fZiFgn<}!hJik zZ&1Op(dYxO^A@*~arf@xK7Fzvs7^6@`!?pU>$4+3#}B>;!NeNV0R&+5Q?-%VQ_fjGg_+f5N+5_^QZ>Ks4;GuA#ns8a#;!<_8yT5I zL~i8z0;s_tLDrNS3ad)$P^!)qUVC%tuiep(HREyv|L&uLX=@v}qZ5jJ6zAmRJU;!& z`@Au3zr}s)h2;RA|HI7|Fc-&H@%6vMTEog;xw`HNzd?R9gb)-Ibjsr8;(>ajx)m)wE3xNSuJ zJ(-@?zKZey6Hu|x`qF-eYtuL8xn9+In)PA8dYdhGak&*xwgS1f%=>B^-|mWC#`=gU zOXN2q=BF(3U+t>wJufTc=Aas=d$81w$3FduJD!XS#b0yL*;HD~5%=6Bvl+|&45C~N zl^{->;?)s~V#o?nF_hVdd;BG2(-u(x(iuzoPVg=M@TKz*2PG5TM-L#7ZQGg>^B{A0 z_zl^UCwZW*0;TVV4i6{`9nlS6$N%c{YqT{LBTw*1>)o5v-9#o%f3em_Ww-F zsjR9>mXPv3UgHVUB|w7^e34k0oD3aM^vV(ZiM%;`meN9jj`A~w7kcCW=6%FlSy@yP zQqm_KxM+vSbt_3HhzEcw<8nZ#Y;q-3)qcGv-ZtRbLy{G|XE5a=X-^gEq}{X4#whZ} zHZ0*J|0+Dpy7r4zjlRp_l4zzlbQIz4N(0C19v&X%33>oWON3imT28b^Fhv{vR~aCFf8=z;Yla zK_c*S-$3E+bpR`X5?p665pd+o;(RL^)3n!a5?gWW=7ndzf9GmE%_ppO#YW2dHeSNi z#N=R_xezSn69oL(Vz%!t$EG%iXbg=gNkYP;$&1y%yGoTU-(z7^F1DH+d^pk=n<6R)_Zx)IiWF>CbF|BWxG{ti4KDsSbBJh{lujv|C$i92E zQD)Z*s?U_dPMKEJ&!-FhPa@7yTPG$ayf5c%m&+>uHJPt^rl9Ej{vDpiZ<{Hl=itCq ztd_+&udAUEGA4ERD~m+Ob$guAW-;a|KUv#h{fDVkTt<Rt* zytlMmE*neO%Jw4wr)r|(-Q__NP437`=%MkZ`7siSefQ&U)==ku=$SFH>ybt_Ce777f1yRCJj zAdhmOm1Yr_0sP@w*EXp|pw zXwH3t2o6^}2qsqVF+ecPvxf$a7B5Zupw!Wv-#a!?Pwan#24RMw{Br;;EEwGhwtkoE zEiWvbfXra7-G{#};Cy>Rzs?5V_k4T(wB?A3?>#yWE^b=+MtxILL3Q=`&e>;r>FgGq zQLxFA1${}1X28;KaeL<8_|DLfDk>`Kh21zq)Axkr;vlA?D{=`kH9PeQ8Z{eLycI`(5t0f_!(jh{gY-cfkQ2%;O z%)8wVJIrm*crb3ur?9BV;`(?!6=ab762ap3OCuS=V+YG4F^bGW4s+f68EA(w#COQE zu^RU+wQmDYcRj@LXvN6DKkIe<69TBD@OX-~%gM^VGdAY(v7H_t58mH*sBfs*>bT2S zh$iQ=tpT79k91Q0lsSR79BNr&8`I~*F)?^nwzif_&8`Ht^asmr6e`JFuH{a87*;^* zn?pcAw(mbV2;KWkQedSqVy!x^6B+sGQxAw+MAX#Lk&#&P^70Ifj3^+$xcffF<>xbz zk&$_8D;=$LfI709#^~A-l;I*l4-z~kt>Iu#1QRXyeU_Pv3lA*j?ZqbEf89t7>=1V~ z-Y4(B?fD}<3%>}s^%!dGdbs#*nsGWaKmQ5z?wWM9u<`K~EG+VRrDdSYodMKaV>$2$ zT#E6zxyZ&wA&_u^vJ{LaS3O4xG$mbjCt7N2Nkm0O=_)%BI5;wc)WM38*UkZuk9;e) zsNE<%!3siS!X%oqW7(1#+S-37WDDE84t`7)saP9$SRAkQ433TIIa>cgz~d}IY*!=f z{2Ub}`}*~#d`mLPiRtO^`8wM+!Hj1-JfjxEAxpcvyT?Dx9yCuj76X4h-U0#oSn|lc z=;Lx?AFjH#CVCiEZC%|mf%Ge)ciP%4M%O4%)DIv9b{gsT{M{1qsYz&$_6G&~m*6RQUGE0AzyLKhLo+jJzVE~KGqTf%Kghpn7_TfJ)hsDLkyiH6~FDMRTb?PPIQ0h{oR!%=v$SPyF2d| zNjtnh+`&zajU{NmJ8YZl@Dnx-y7vUjs1I=;s-OXy^K2k&(R+JJlkK8~-vtC~WJb=5 z@n>&xn-JI-SP=fum8Lus_C7WTktF?w(3l8aTUYl_hI4060<%(PAR0ScEaG2&m8#cXn6Hf%!Sq zFRidZ7dLlyZvx~Uo0~SqZC?1ZRVKat(G(LaD~AUpK};MR*c==j%4%wg9v%X+a&p8} zR5+lmH9D#$AS{dkxn@aK)j*L-iq)!h1vqZ1z=y=LJ6n<7_cd#vo5Q23;Gy&OEgrbO zFuQz{G^Mti0Uy=G6MPSE@U>h?Ys%O{vy5)&3;O!$w}5 z*dI06-;e0wF9aGGZby89;>AdU`tcN1@mNS=*eL7a$FH?xvqpw}3S>|bg)Hh5408%0 z>ILKM3SI8g>(AVjDFMg`2&17A${dDXuXB!hchF+!_~AEqf9weo9GSG~U^uEy`=vB3t!v|r>y-fehmk|H|mC<|Y*`b7b3f#_M09*mK)_-lI cstRy|$5`O@?=z{D^l$fCK~26&);#q80Potxy8r+H diff --git a/src/android/app/src/main/res/drawable-xxhdpi/ic_stat_notification_logo.png b/src/android/app/src/main/res/drawable-xxhdpi/ic_stat_notification_logo.png index d73fad15bd64a32b311a1b7acd1aedf28b8288ba..a7e1d58f596036cc2aa3fbff5cba49478397d555 100644 GIT binary patch literal 14380 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 T22sK5e-I@(HQ5?zi_rfEe;>gU literal 56651 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 Py|1eHSfNtR?Ad<+^nLIa diff --git a/src/android/app/src/main/res/drawable/ic_launcher.xml b/src/android/app/src/main/res/drawable/ic_launcher.xml index 3bb60fdfbb..1859f0760d 100644 --- a/src/android/app/src/main/res/drawable/ic_launcher.xml +++ b/src/android/app/src/main/res/drawable/ic_launcher.xml @@ -1,6 +1,6 @@ - - + + diff --git a/src/android/app/src/main/res/drawable/ic_suyu.xml b/src/android/app/src/main/res/drawable/ic_suyu.xml new file mode 100644 index 0000000000..80a28a02c3 --- /dev/null +++ b/src/android/app/src/main/res/drawable/ic_suyu.xml @@ -0,0 +1,29 @@ + + + + + + + diff --git a/src/android/app/src/main/res/drawable/ic_suyu_full.xml b/src/android/app/src/main/res/drawable/ic_suyu_full.xml new file mode 100644 index 0000000000..fa78251093 --- /dev/null +++ b/src/android/app/src/main/res/drawable/ic_suyu_full.xml @@ -0,0 +1,12 @@ + + + + diff --git a/src/android/app/src/main/res/drawable/ic_suyu_title.xml b/src/android/app/src/main/res/drawable/ic_suyu_title.xml new file mode 100644 index 0000000000..56b3060cb5 --- /dev/null +++ b/src/android/app/src/main/res/drawable/ic_suyu_title.xml @@ -0,0 +1,29 @@ + + + + + + + diff --git a/src/android/app/src/main/res/drawable/ic_yuzu.xml b/src/android/app/src/main/res/drawable/ic_yuzu.xml deleted file mode 100644 index 5e2a8efd0c..0000000000 --- a/src/android/app/src/main/res/drawable/ic_yuzu.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - diff --git a/src/android/app/src/main/res/drawable/ic_yuzu_full.xml b/src/android/app/src/main/res/drawable/ic_yuzu_full.xml deleted file mode 100644 index 04e4584002..0000000000 --- a/src/android/app/src/main/res/drawable/ic_yuzu_full.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/src/android/app/src/main/res/drawable/ic_yuzu_title.xml b/src/android/app/src/main/res/drawable/ic_yuzu_title.xml deleted file mode 100644 index b733e52481..0000000000 --- a/src/android/app/src/main/res/drawable/ic_yuzu_title.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - diff --git a/src/android/app/src/main/res/drawable/premium_background.xml b/src/android/app/src/main/res/drawable/premium_background.xml index c9c41ddbe0..b48b001083 100644 --- a/src/android/app/src/main/res/drawable/premium_background.xml +++ b/src/android/app/src/main/res/drawable/premium_background.xml @@ -3,7 +3,7 @@ + android:startColor="@color/suyu_ea_background_start" + android:endColor="@color/suyu_ea_background_end" /> diff --git a/src/android/app/src/main/res/layout-w600dp/fragment_about.xml b/src/android/app/src/main/res/layout-w600dp/fragment_about.xml index a5eba6474a..15fa96ee42 100644 --- a/src/android/app/src/main/res/layout-w600dp/fragment_about.xml +++ b/src/android/app/src/main/res/layout-w600dp/fragment_about.xml @@ -45,7 +45,7 @@ android:layout_height="200dp" android:layout_gravity="center_horizontal" android:padding="20dp" - android:src="@drawable/ic_yuzu_title" /> + android:src="@drawable/ic_suyu_title" /> + android:src="@drawable/ic_suyu_title" /> - - + android:src="@drawable/ic_suyu_full" /> diff --git a/src/android/app/src/main/res/navigation/emulation_navigation.xml b/src/android/app/src/main/res/navigation/emulation_navigation.xml index 2f8c3fa0dd..95c9353dc6 100644 --- a/src/android/app/src/main/res/navigation/emulation_navigation.xml +++ b/src/android/app/src/main/res/navigation/emulation_navigation.xml @@ -7,12 +7,12 @@ + app:argType="org.suyu.suyu_emu.features.settings.model.Settings$MenuTag" /> - + app:destination="@id/earlyAccessFragment" /> --> @@ -35,7 +35,7 @@ - + + android:defaultValue="false" + app:argType="boolean" /> + app:argType="org.suyu.suyu_emu.features.settings.model.Settings$MenuTag" />

+ app:argType="org.suyu.suyu_emu.model.Game" /> @@ -156,19 +157,19 @@ app:destination="@id/perGamePropertiesFragment" /> + app:argType="org.suyu.suyu_emu.model.Game" /> + app:argType="org.suyu.suyu_emu.model.Game" /> diff --git a/src/android/app/src/main/res/navigation/settings_navigation.xml b/src/android/app/src/main/res/navigation/settings_navigation.xml index e4c66e7d5a..94ba7b61a6 100644 --- a/src/android/app/src/main/res/navigation/settings_navigation.xml +++ b/src/android/app/src/main/res/navigation/settings_navigation.xml @@ -6,14 +6,14 @@ + app:argType="org.suyu.suyu_emu.features.settings.model.Settings$MenuTag" /> 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 41d7418470..2eacae1d5c 100644 --- a/src/android/app/src/main/res/values-ar/strings.xml +++ b/src/android/app/src/main/res/values-ar/strings.xml @@ -34,7 +34,7 @@ يسمح لـ يوزو بملء قائمة الألعاب تخطي تحديد مجلد الألعاب؟ لن يتم عرض الألعاب في قائمة الألعاب إذا لم يتم تحديد مجلد - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games البحث عن ألعاب إعدادات البحث تم تحديد مجلد الألعاب @@ -42,7 +42,7 @@ مطلوب لفك تشفير ألعاب البيع بالتجزئة تخطي إضافة المفاتيح؟ مطلوب مفاتيح صالحة لمحاكاة ألعاب البيع بالتجزئة. ستعمل تطبيقات البيرة المنزلية فقط إذا تابعت - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction الإشعارات امنح إذن الإشعار باستخدام الزر أدناه منح الإذن @@ -63,7 +63,7 @@ وحاول مرة أخر keys تحقق من أن ملف المفاتيح له امتداد وحاول مرة أخر bin تحقق من أن ملف المفاتيح له امتداد مفاتيح التشفير غير صالحة - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys الملف المحدد غير صحيح أو تالف. يرجى إعادة المفاتيح الخاصة بك GPU مدير برنامج تشغيل GPU تثبيت برنامج تشغيل @@ -107,11 +107,11 @@ لا يُسمح بتثبيت الألعاب الأساسية لتجنب التعارضات المحتملة. %1$d تم التثبيت بنجاح %1$d تمت الكتابة فوقه بنجاح - https://yuzu-emu.org/help/quickstart/#dumping-installed-updates + https://suyu-emu.org/help/quickstart/#dumping-installed-updates برامج التشغيل المخصصة غير مدعومة تحميل برنامج التشغيل المخصص غير معتمد حاليًا لهذا الجهاز.\nحدد هذا الخيار مرة أخرى في المستقبل لمعرفة ما إذا تمت إضافة الدعم! - إدارة بيانات يوزو - استيراد/تصدير فيرموير والمفاتيح وبيانات المستخدم والمزيد + إدارة بيانات يوزو + استيراد/تصدير فيرموير والمفاتيح وبيانات المستخدم والمزيد مشاركة ملف الحفظ فشل تصدير الحفظ مجلدات اللعبة @@ -137,7 +137,7 @@ محاكي سويتش مفتوح المصدر المساهمين مصنوع من فريق يوزو - https://github.com/yuzu-emu/yuzu/graphs/contributors + https://github.com/suyu-emu/suyu/graphs/contributors المشاريع التي تجعل تطبيق يوزو لنظام أندرويد ممكنًا البناء بيانات المستخدم @@ -145,18 +145,18 @@ جاري تصدير بيانات المستخدم جاري استيراد بيانات المستخدم استيراد بيانات المستخدم - نسخة احتياطية يوزو غير صالحة + نسخة احتياطية يوزو غير صالحة تم تصدير بيانات المستخدم بنجاح تم استيراد بيانات المستخدم بنجاح تم إلغاء التصدير - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu الوصول المبكر احصل على الوصول المبكر - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea الميزات المتطورة، والوصول المبكر إلى التحديثات، وأكثر من ذلك مزايا الوصول المبكر ميزات متطورة 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 a10e3dba41..bb630f934a 100644 --- a/src/android/app/src/main/res/values-ckb/strings.xml +++ b/src/android/app/src/main/res/values-ckb/strings.xml @@ -1,14 +1,14 @@ - ئەم نەرمەکاڵایە یارییەکانی کۆنسۆلی نینتێندۆ سویچ کارپێدەکات. هیچ ناونیشانێکی یاری و کلیلی تێدا نییە..<br /><br />پێش ئەوەی دەست پێ بکەیت، تکایە شوێنی فایلی prod.keys ]]> دیاریبکە لە نێو کۆگای ئامێرەکەت.<br /><br />زیاتر فێربە]]>
+ ئەم نەرمەکاڵایە یارییەکانی کۆنسۆلی نینتێندۆ سویچ کارپێدەکات. هیچ ناونیشانێکی یاری و کلیلی تێدا نییە..<br /><br />پێش ئەوەی دەست پێ بکەیت، تکایە شوێنی فایلی prod.keys ]]> دیاریبکە لە نێو کۆگای ئامێرەکەت.<br /><br />زیاتر فێربە]]> ئاگاداری و هەڵەکان ئاگادارکردنەوەکان پیشان دەدات کاتێک شتێک بە هەڵەدا دەچێت. مۆڵەتی ئاگادارکردنەوە نەدراوە! بەخێربێیت! - فێربە چۆن <b>yuzu</b> ڕێکبخەیت و بچییە ناو ئیمولەیشن. + فێربە چۆن <b>suyu</b> ڕێکبخەیت و بچییە ناو ئیمولەیشن. دەست پێبکە کلیلەکان فایلی <b>prod.keys</b> هەڵبژێرە بە دوگمەی خوارەوە. @@ -32,14 +32,14 @@ ڕێگە بە یوزو دەدات بۆ پڕکردنەوەی لیستی یارییەکان هەڵبژاردنی فۆڵدەری یارییەکان تێپەڕدەکەیت؟ یارییەکان لە لیستی یارییەکاندا پیشان نادرێن ئەگەر فۆڵدەرێک هەڵنەبژێردرێت. - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games گەڕان بەدوای یارییەکاندا ناونیشانی یارییەکان هەڵبژێردرا دابمەزرێنە prod.keys پێویستە بۆ کۆدکردنەوەى یارییە تاکەکەسییەکان زیادکردنی کلیلەکان تێپەڕدەکەیت؟ کلیلی دروست پێویستە بۆ وەرگرتنی یارییەکانی تاکەکەسی. تەنها ئەپەکانی homebrew کاردەکەن ئەگەر بەردەوام بیت. - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction ئاگادارکردنەوەکان بە دوگمەی خوارەوە مۆڵەتی ئاگادارکردنەوەکە بدە. مۆڵەت بدە @@ -60,7 +60,7 @@ دڵنیابەوە کە فایلی کلیلەکانت درێژکراوەی .keys ی هەیە و دووبارە هەوڵبدەرەوە. دڵنیابە کە فایلی کلیلەکانت درێژکراوەی .bin ی هەیە و دووبارە هەوڵبدەرەوە. کلیلی کۆدکردنی نادروستە - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys فایلە هەڵبژێردراوەکە هەڵەیە یان تێکچووە. تکایە دووبارە کلیلەکانت دەربێنەوە. دامەزراندنی وەگەڕخەری GPU دامەزراندنی وەگەڕخەری بەدیل بۆ ئەوەی بە ئەگەرێکی زۆرەوە کارایی باشتر یان وردبینی هەبێت @@ -94,8 +94,8 @@ هیچ فایلێکی لۆگ نەدۆزراوە دامەزراندنی ناوەڕۆکی یاری دامەزراندنی نوێکاری یارییەکان یان DLC - https://yuzu-emu.org/help/quickstart/#dumping-installed-updates - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-installed-updates + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys گایا ڕاستەقینە نییە @@ -103,17 +103,17 @@ ئیمۆلیتەرێکی سەرچاوە-کراوەی سویچ بەشداربووان دروستکراوە لەگەڵ \u2764 لەلایەن تیمەکەی یوزو - https://github.com/yuzu-emu/yuzu/graphs/contributors + https://github.com/suyu-emu/suyu/graphs/contributors ئەو پڕۆژانەی کە یوزوی بۆ ئەندرۆید ڕەخساند بونیات - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu بەزوویی دەسپێگەشتن بەدەستهێنانی بەزوویی دەسپێگەشتن - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea تایبەتمەندییە پێشکەوتووەکان، بەزوویی دەستگەیشتن بە نوێکارییەکان و زۆر شتی تر سوودەکانی بەزوویی دەسپێگەشتن تایبەتمەندییە پێشکەوتووەکان @@ -246,7 +246,7 @@ وەشان ڕۆمەکەت کۆدکراوە - prod.keys فایلەکەت بۆ ئەوەی بتوانرێت یارییەکان کۆد بکرێنەوە.]]> + prod.keys فایلەکەت بۆ ئەوەی بتوانرێت یارییەکان کۆد بکرێنەوە.]]> هەڵەیەک لە دەستپێکردنی ناوەکی ڤیدیۆکەدا ڕوویدا ئەمەش بەزۆری بەهۆی وەگەڕخەرێکی ناتەبای GPU ەوەیە. دامەزراندنی وەگەڕخەری GPU ی تایبەتمەندکراو لەوانەیە ئەم کێشەیە چارەسەر بکات. ناتوانرێت ڕۆم باربکرێت 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 8f8e2848d1..6d09b552cd 100644 --- a/src/android/app/src/main/res/values-cs/strings.xml +++ b/src/android/app/src/main/res/values-cs/strings.xml @@ -26,14 +26,14 @@ Hledat a filtrovat hry Vybrat složku s hrami Spravovat složky s hrami - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games Instalovat prod.keys Přeskočit přidávání klíčů? - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction Oznámení Udělit oprávnění Přeskočit udělení oprávnění k oznámení? - yuzu vám nebude schopno oznámit důležité informace. + suyu vám nebude schopno oznámit důležité informace. Oprávnění zamítnuto Zamítnul jste toto oprávnění příliš mnohokrát, musíte manuálně udělit oprávnění v nastavení systému. O aplikaci @@ -47,7 +47,7 @@ Klíče úspěšně nainstalovány Chyba při čtení šifrovacích klíčů Neplatné šifrovací klíče - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Správce ovladače GPU Instalovat GPU ovladač Pokročilé nastavení @@ -55,10 +55,10 @@ Nedávno hrané Nedávno přidané Homebrew - Otevřít yuzu složku - Spravovat soubory yuzu + Otevřít suyu složku + Spravovat soubory suyu Nenalezen žádný správce souborů - Nepovedlo se otevřít yuzu složku + Nepovedlo se otevřít suyu složku Spravovat data postupu ve hře Data postupu nalezeny. Prosím vyberte možnost. Importovat nebo exportovat data postupu @@ -74,7 +74,7 @@ Nainstalovat aktualizace hry nebo DLC Instalování obsahu... Chyba při instalaci soubor(ů) do NAND - Spravovat data yuzu + Spravovat data suyu Složky s hrami Tato složka byla již přidána! Vlastnosti složky s hrami @@ -85,22 +85,22 @@ Zkopírováno do schránky Open-source Switch emulátor Přispěvatelé - Vyrobeno s \u2764 od yuzu týmu - https://github.com/yuzu-emu/yuzu/graphs/contributors + Vyrobeno s \u2764 od suyu týmu + https://github.com/suyu-emu/suyu/graphs/contributors Číslo sestavení Uživatelská data Exportování uživatelských dat... Importování uživatelských dat... Importovat uživatelská data - Neplatná záloha yuzu + Neplatná záloha suyu Uživatelská data byla úspěšně exportována. Uživatelská data byla úspěšně importována. Export zrušen - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea Žádná manuální instalace Prioritní podpora Naše věčná vděčnost 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 2019bf2704..8a69115433 100644 --- a/src/android/app/src/main/res/values-de/strings.xml +++ b/src/android/app/src/main/res/values-de/strings.xml @@ -1,14 +1,14 @@ - Diese Software kann Spiele für die Nintendo Switch abspielen. Keine Spiele oder Spielekeys sind enthalten.<br /><br />Bevor du beginnst, bitte halte deine prod.keys ]]> auf deinem Gerät bereit. .<br /><br />Mehr Infos]]> + Diese Software kann Spiele für die Nintendo Switch abspielen. Keine Spiele oder Spielekeys sind enthalten.<br /><br />Bevor du beginnst, bitte halte deine prod.keys ]]> auf deinem Gerät bereit. .<br /><br />Mehr Infos]]> Hinweise und Fehler Zeigt Benachrichtigungen an, wenn etwas schief läuft. Berechtigung für Benachrichtigungen nicht erlaubt! Willkommen! - Erfahre wie man <b>yuzu</b> einrichtet und beginne mit der Emulation. + Erfahre wie man <b>suyu</b> einrichtet und beginne mit der Emulation. Erste Schritte Schlüssel Wähle deine <b>prod.keys</b> Datei mit dem Button unten aus. @@ -32,10 +32,10 @@ Spiele suchen und filtern Spieleverzeichnis auswählen Spiele-Ordner verwalten - Erlaubt yuzu die Spieleliste zu füllen + Erlaubt suyu die Spieleliste zu füllen Auswahl des Spieleverzeichnisses überspringen? Spiele werden in der Spieleliste nicht angezeigt, wenn kein Ordner ausgewählt ist. - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games Spiele suchen Einstellungen suchen Spieleverzeichnis ausgewählt @@ -43,11 +43,11 @@ Zum Entschlüsseln von Spielen benötigt Hinzufügen der Schlüssel überspringen? Für die Emulation von Spielen sind gültige Schlüssel erforderlich. Wenn du fortfährst, funktionieren nur Homebrew-Anwendungen. - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction Benachrichtigungen Erteile mit dem Knopf unten die Berechtigung, Benachrichtigungen zu senden. Berechtigung erteilen - yuzu wird dich nicht über wichtige Informationen benachrichtigen können. + suyu wird dich nicht über wichtige Informationen benachrichtigen können. Zugriff verweigert Du hast diese Berechtigung zu oft verweigert und musst sie nun manuell in den Systemeinstellungen erteilen. Über @@ -63,7 +63,7 @@ Überprüfen Sie, ob Ihre Schlüsseldatei die Erweiterung \".keys\" hat, und versuchen Sie es erneut. Überprüfen Sie, ob Ihre Schlüsseldatei die Erweiterung \".bin\" hat, und versuchen Sie es erneut. Ungültige Schlüssel - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Die ausgewählte Datei ist falsch oder beschädigt. Bitte kopieren Sie Ihre Schlüssel erneut. GPU-Treiber Verwaltung GPU-Treiber installieren @@ -75,11 +75,11 @@ Kürzlich hinzugefügt Spiele Homebrew - yuzu-Ordner öffnen - yuzu\'s interne Dateien verwalten + suyu-Ordner öffnen + suyu\'s interne Dateien verwalten Das Aussehen der App ändern Kein Dateimanager gefunden - yuzu-Verzeichnis konnte nicht geöffnet werden + suyu-Verzeichnis konnte nicht geöffnet werden Bitte suche den Benutzerordner manuell über die Seitenleiste des Dateimanagers. Speicherdaten verwalten Speicherdaten gefunden. Bitte wähle unten eine Option aus. @@ -100,7 +100,7 @@ Wirklich fortfahren?
Die Firmware wurde erfolgreich installiert! Bei der Firmware installation ist etwas fehlgeschlagen. Debug-Logs teilen - Debug-Logs an yuzu zur Untersuchung absenden + Debug-Logs an suyu zur Untersuchung absenden Keine Log-Datei gefunden Spiel installieren Spiel-Updates oder DLCs installieren @@ -108,12 +108,12 @@ Wirklich fortfahren? %1$d Installationsfehler %1$d erfolgreich installiert %1$d erfolgreich überschrieben - https://yuzu-emu.org/help/quickstart/#dumping-installed-updates - yuzu-Daten Verwalten + https://suyu-emu.org/help/quickstart/#dumping-installed-updates + suyu-Daten Verwalten Speicherdaten teilen Spiele-Ordner Spiele-Ordner hinzufügen - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Firmware nicht installiert @@ -121,9 +121,9 @@ Wirklich fortfahren? In die Zwischenablage kopiert Ein quelloffener Switch-Emulator Beitragende - Gemacht mit \u2764 vom yuzu Team - https://github.com/yuzu-emu/yuzu/graphs/contributors - Projekte, die yuzu für Android möglich machen + Gemacht mit \u2764 vom suyu Team + https://github.com/suyu-emu/suyu/graphs/contributors + Projekte, die suyu für Android möglich machen Build Nutzerdaten Importiere Nutzerdaten... @@ -131,14 +131,14 @@ Wirklich fortfahren? Nutzerdaten erfolgreich exportiert Nutzerdaten erfolgreich importiert Export abgebrochen - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu Early Access Early Access bekommen - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea Neueste Features, frühzeitiger Zugriff auf Updates und mehr Early Access Vorteile Neueste Features @@ -319,7 +319,7 @@ Wirklich fortfahren? Integritätsüberprüfung konnte nicht durchgeführt werden Das ROM ist verschlüsselt - prod.keys Datei installiert ist, damit Spiele entschlüsselt werden können.]]> + prod.keys Datei installiert ist, damit Spiele entschlüsselt werden können.]]> Bei der Initialisierung des Videokerns ist ein Fehler aufgetreten Dies wird normalerweise durch einen inkompatiblen GPU-Treiber verursacht. Die Installation eines passenden GPU-Treibers kann dieses Problem beheben. ROM konnte nicht geladen werden 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 4efcee38e5..ebe05df24a 100644 --- a/src/android/app/src/main/res/values-es/strings.xml +++ b/src/android/app/src/main/res/values-es/strings.xml @@ -1,14 +1,14 @@ - 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 prod.keys ]]>en el almacenamiento de su dispositivo..<br /><br />Saber más]]> + 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 prod.keys ]]>en el almacenamiento de su dispositivo..<br /><br />Saber más]]> Avisos y errores Mostrar notificaciones cuándo algo vaya mal. ¡Permisos de notificación no concedidos! ¡Bienvenido! - Aprende cómo configurar <b>yuzu</b> y avanza a la emulación. + Aprende cómo configurar <b>suyu</b> y avanza a la emulación. Empezar Claves Selecciona el archivo <b>prod.keys</b> utilizando el botón de abajo. @@ -32,10 +32,10 @@ Busca y filtra juegos Seleccionar carpeta de juegos Gestionar carpetas de juegos - Permite que yuzu llene la lista de juegos + Permite que suyu llene la lista de juegos ¿Omitir la selección de la carpeta de juegos? No se mostrará ningún juego si no se ha seleccionado una carpeta de juegos. - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games Buscar juegos Buscar configuración Directorio de juegos seleccionado @@ -43,12 +43,12 @@ Requerido para descifrar juegos ¿Omitir agregar claves? Se requieren claves válidas para emular juegos. Solo las aplicaciones homebrew funcionarán si continúas. - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction Notificaciones Otorga el permiso de notificación con el botón de abajo. Conceder permiso ¿Omitir conceder el permiso de notificación? - yuzu no podrá notificarte información importante. + suyu no podrá notificarte información importante. Permiso denegado Se ha denegado este permiso demasiadas veces y ahora debes otorgarlo de forma manual en la configuración del sistema. Acerca de @@ -64,7 +64,7 @@ Compruebe que el archivo de claves tenga una extensión .keys y pruebe otra vez. Compruebe que el archivo de claves tenga una extensión .bin y pruebe otra vez. Claves de cifrado no válidas - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys El archivo seleccionado es incorrecto o está corrupto. Vuelva a redumpear sus claves. Explorador de drivers de GPU Instalar driver de GPU @@ -76,11 +76,11 @@ Añadido recientemente Juegos Homebrew - Abrir la carpeta de yuzu - Administrar los archivos internos de yuzu + Abrir la carpeta de suyu + Administrar los archivos internos de suyu Modificar la apariencia de la aplicación Explorador de archivos no encontrado - No se pudo abrir la carpeta yuzu + No se pudo abrir la carpeta suyu Por favor, busque la carpeta user con el panel lateral del explorador de archivos de forma manual. Administrar datos de guardado Guardar los datos encontrados. Por favor, seleccione una opción de abajo. @@ -101,7 +101,7 @@ Error en la instalación de firmware Asegúrese de que los archivos nca del firmware estén en la raíz del zip e inténtelo de nuevo. Compartir registros de depuración - Comparta el archivo de registro de yuzu para depurar problemas + Comparta el archivo de registro de suyu para depurar problemas No se encontró ningún archivo de registro Instalar contenido de juego Instalar actualizaciones o DLC @@ -114,11 +114,11 @@ Contenido(s) de juego instalado/s con éxito %1$d instalado con éxito %1$d sobreescrito con éxito - https://yuzu-emu.org/help/quickstart/#dumping-installed-updates + https://suyu-emu.org/help/quickstart/#dumping-installed-updates Drivers personalizados no soportados En estos momentos, la carga de drivers personalizados no está disponible para este dispositivo..\n¡Comprueba esta opción en el futuro para ver si ya está añadido el soporte a ese dispositivo! - Administrar datos de yuzu - Importa/exporta el firmware, las claves, los datos de usuario, ¡y más! + Administrar datos de suyu + Importa/exporta el firmware, las claves, los datos de usuario, ¡y más! Compartir archivo de guardado Error al exportar el archivo de guardado Carpetas de juegos @@ -141,14 +141,14 @@ Comprueba todo el contenido instalado por si hubiese alguno corrupto Faltan las claves de encriptación El firmware y los juegos no se pueden desencriptar - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Ejecutador de applet Ejecutar applets de sistema usando el firmware instalado Firmware no instalado Applet no disponible - prod.keys y el firmware estén instalados e inténtelo de nuevo.]]> + prod.keys y el firmware estén instalados e inténtelo de nuevo.]]> Álbum Ver las imágenes que están en la carpeta \"screenshots\" del usuario con el visor de fotos del sistema Editor de Mii @@ -166,28 +166,28 @@ Copiado al portapapeles Un emulador de Switch de código abierto Contribuidores - Hecho con \u2764 del equipo yuzu - https://github.com/yuzu-emu/yuzu/graphs/contributors - Proyectos que hacen que yuzu para Android sea una realidad + Hecho con \u2764 del equipo suyu + https://github.com/suyu-emu/suyu/graphs/contributors + Proyectos que hacen que suyu para Android sea una realidad Versión Datos de usuario Importa/exporta todos los datos de usuario.\n\nCuando se importen los datos de usuario, ¡los demás datos de usuario existentes serán borrados! Exportando datos de usuario... Importando datos de usuario... Importar datos de usuario - Backup de válido + Backup de válido Datos de usuario exportados con éxito Datos de usuario importados con éxito Exportación cancelada Asegúrese de que las carpetas de datos de usuario estén en la raíz de la carpeta del zip y contengan un archivo config en config/config.ini e inténtelo de nuevo. - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu Early Access Conseguir Early Access - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea Funciones de vanguardia, acceso anticipado a actualizaciones y más Beneficios Early Access Características de vanguardia @@ -410,8 +410,8 @@ Su ROM está encriptada - cartuchos de juegos o títulos instalados.]]> - prod.keys está instalado, para que los juegos sean descifrados.]]> + cartuchos de juegos o títulos instalados.]]> + prod.keys está instalado, para que los juegos sean descifrados.]]> Ocurrió un error al inicializar el núcleo de video, posiblemente debido a una incompatibilidad con el driver seleccionado Esto suele deberse a un driver de GPU incompatible. La instalación de un controlador de GPU personalizado puede resolver este problema. No se pudo cargar la ROM diff --git a/src/android/app/src/main/res/values-fa/strings.xml b/src/android/app/src/main/res/values-fa/strings.xml index bda162e188..8112b8a853 100644 --- a/src/android/app/src/main/res/values-fa/strings.xml +++ b/src/android/app/src/main/res/values-fa/strings.xml @@ -8,7 +8,7 @@ خوش آمدید! - نحوه راه اندازی <b>yuzu</b> و شبیه سازی را بیاموزید. + نحوه راه اندازی <b>suyu</b> و شبیه سازی را بیاموزید. شروع کنید کلیدها فایل <b>prod.keys</b> خود را با دکمه زیر انتخاب کنید. @@ -32,10 +32,10 @@ جستجو و فیلتر کردن بازی‌ها پوشه بازی‌ها را انتخاب کنید مدیریت پوشه‌های بازی - به yuzu اجازه می دهد تا لیست باز‌ی‌ها را پر کند + به suyu اجازه می دهد تا لیست باز‌ی‌ها را پر کند از انتخاب پوشه بازی رد می‌شوید؟ اگر پوشه‌ای انتخاب نشده باشد، بازی‌ها در لیست بازی‌ها نمایش داده نمی‌شوند. - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games جستجو در بازی‌ها جستجو در تنظیمات پوشه بازی‌ها انتخاب شد @@ -43,12 +43,12 @@ برای رمزگشایی بازی‌های فروشگاهی مورد نیاز است افزودن کلیدها را رد می‌کنید؟ کلیدهای معتبر برای شبیه‌سازی بازی‌های فروشگاهی مورد نیاز است. اگر ادامه دهید، فقط برنامه‌های سیستم ریزکامپیوتری کار خواهند کرد. - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction اعلان‌ها مجوز اعلان را با دکمه زیر اعطا کنید. اجازه بدهید دادن مجوز اعلان را رد می‌کنید؟ - yuzu نمی‌تواند شما را از اطلاعات مهم مطلع کند. + suyu نمی‌تواند شما را از اطلاعات مهم مطلع کند. دسترسی داده نشد شما بارها این دسترسی را رد کردید و اکنون باید آن را به صورت دستی در تنظیمات سیستم اعطا کنید. درباره @@ -64,7 +64,7 @@ بررسی کنید که فایل کلیدهای شما دارای پسوند keys. باشد و دوباره امتحان کنید. بررسی کنید که فایل کلیدهای شما دارای پسوند bin. باشد و دوباره امتحان کنید. کلیدهای رمزگذاری نامعتبر - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys فایل انتخابی نادرست یا خراب است. لطفا کلیدهای خود را دوباره استخراج کنید. مدیریت درایور پردازنده گرافیکی نصب درایور پردازنده گرافیکی @@ -76,11 +76,11 @@ به تازگی اضافه شده‌ها فروشگاهی ریزکامپیوتری - باز کردن پوشه yuzu - مدیریت فایل‌های داخلی yuzu + باز کردن پوشه suyu + مدیریت فایل‌های داخلی suyu تغییر ظاهر برنامه هیچ برنامه مدیریت فایلی پیدا نشد - پوشه yuzu باز نشد + پوشه suyu باز نشد لطفاً پوشه کاربری را با استفاده از پنل کناری برنامه مدیریت فایل به صورت دستی پیدا کنید. مدیریت ذخیره داده‌ها ذخیره داده یافت شد. لطفاً یکی از گزینه‌های زیر را انتخاب کنید. @@ -101,7 +101,7 @@ نصب ثابت‌افزار ناموفق بود مطمئن شوید که فایل‌های nca ثابت‌افزار در ریشه فایل فشرده هستند و دوباره امتحان کنید. اشتراک گزارش اشکال زدایی - فایل گزارش yuzu را برای رفع اشکال به اشتراک بگذارید + فایل گزارش suyu را برای رفع اشکال به اشتراک بگذارید هیچ فایل گزارشی یافت نشد نصب محتوای بازی آپدیت های بازی یا DLC را نصب کنید @@ -114,11 +114,11 @@ محتوا(های) بازی با موفقیت نصب شد %1$dبا موفقیت نصب شد %1$dبا موفقیت بازنویسی شد - https://yuzu-emu.org/help/quickstart/#dumping-installed-updates + https://suyu-emu.org/help/quickstart/#dumping-installed-updates درایورهای سفارشی پشتیبانی نمی‌شوند بارگیری درایور سفارشی در حال حاضر برای این دستگاه پشتیبانی نمی‌شود.\nاین گزینه را دوباره در آینده بررسی کنید تا ببینید آیا پشتیبانی اضافه شده است یا خیر! - مدیریت داده‌های yuzu - وارد کردن/صادر کردن ثابت‌افزار، کلیدها، داده‌های کاربر، و موارد دیگر! + مدیریت داده‌های suyu + وارد کردن/صادر کردن ثابت‌افزار، کلیدها، داده‌های کاربر، و موارد دیگر! اشتراک گذاری فایل ذخیره ذخیره صادر نشد پوشه‌های بازی @@ -139,14 +139,14 @@ تمام محتوای نصب شده را از نظر خرابی بررسی می‌کند کلیدهای رمزگذاری وجود ندارند ثابت‌افزار و بازی‌های فروشگاهی قابل رمزگشایی نیستند - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys اجراکننده برنامک برنامک‌های سیستم را با استفاده از ثابت‌افزار نصب شده راه اندازی کنید ثابت‌افزار نصب نیست برنامک در دسترس نیست - prod.keys و ثابت‌افزار شما نصب شده است و دوباره امتحان کنید.]]> + prod.keys و ثابت‌افزار شما نصب شده است و دوباره امتحان کنید.]]> آلبوم تصاویر ذخیره شده در پوشه اسکرین شات‌های کاربر را با نمایشگر عکس سیستم مشاهده کنید ویرایش Mii @@ -164,28 +164,28 @@ در کلیپ‌بورد کپی شد یک شبیه‌ساز سوئیچ منبع باز مشارکت کنندگان - Made with \u2764 from the yuzu team - https://github.com/yuzu-emu/yuzu/graphs/contributors - پروژه‌هایی که yuzu را برای اندروید ممکن می‌سازند + Made with \u2764 from the suyu team + https://github.com/suyu-emu/suyu/graphs/contributors + پروژه‌هایی که suyu را برای اندروید ممکن می‌سازند ساخت داده کاربر همه داده‌های برنامه را وارد/صادر کنید.\n\nهنگام وارد کردن داده‌های کاربر، همه داده‌های کاربر موجود حذف خواهند شد! در حال صادر کردن داده‌های کاربر... در حال وارد کردن داده‌های کاربر... وارد کردن داده کاربر - پشتیبان نامعتبر yuzu + پشتیبان نامعتبر suyu داده‌های کاربر با موفقیت صادر شد داده‌های کاربر با موفقیت وارد شد صدور لغو شد مطمئن شوید که پوشه‌های داده کاربر در ریشه پوشه zip و حاوی یک فایل پیکربندی در config/config.ini هستند سپس دوباره امتحان کنید. - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu دسترسی زودهنگام دسترسی زودهنگام را دریافت کنید - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea ویژگی‌های پیشرفته، دسترسی زودهنگام به بروزرسانی‌ها و موارد دیگر مزایای دسترسی زودهنگام ویژگی‌های پیشرفته @@ -410,7 +410,7 @@ رام شما رمزگذاری شده است - کارتیج‌های بازی یا عناوین نصب شده خود را استخراج کنید.]]> + کارتیج‌های بازی یا عناوین نصب شده خود را استخراج کنید.]]> در راه‌اندازی اولیه هسته ویدیو خطایی رخ داد این مورد معمولاً توسط یک درایور گرافیکی ناسازگار ایجاد می‌شود. نصب درایور گرافیکی سفارشی ممکن است این مشکل را حل کند. 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 43e95901f8..f98ea6a35f 100644 --- a/src/android/app/src/main/res/values-fr/strings.xml +++ b/src/android/app/src/main/res/values-fr/strings.xml @@ -1,14 +1,14 @@ - 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 prod.keys ]]> sur le stockage de votre appareil.<br /><br />En savoir plus]]> + 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 prod.keys ]]> sur le stockage de votre appareil.<br /><br />En savoir plus]]> Avis et erreurs Affiche des notifications en cas de problème. Permission de notification non accordée ! Bienvenue ! - Apprenez à configurer <b>yuzu</b> et passez à l\'émulation. + Apprenez à configurer <b>suyu</b> et passez à l\'émulation. Commencer Clés Sélectionnez votre fichier <b>prod.keys</b> avec le bouton ci-dessous. @@ -32,10 +32,10 @@ Rechercher et filtrer les jeux Sélectionner le dossier des jeux Gérer les dossiers de jeux - Permet à yuzu de remplir la liste des jeux + Permet à suyu de remplir la liste des jeux Ne pas sélectionner le dossier des jeux ? Les jeux ne seront pas affichés dans la liste des jeux si aucun dossier n\'est sélectionné. - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games Rechercher des jeux Rechercher un paramètre Répertoire de jeux sélectionné @@ -43,12 +43,12 @@ Nécessaire pour décrypter les jeux commerciaux. Sauter l\'ajout des clés ? Des clés valides sont nécessaires pour émuler des jeux commerciaux. Seules les applications homebrew fonctionneront si vous continuez. - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction Notifications Accorder la permission de notification avec le bouton ci-dessous. Accorder la permission Ne pas accorder la permission de notification ? - yuzu ne pourra pas vous communiquer d\'informations importantes. + suyu ne pourra pas vous communiquer d\'informations importantes. Permission refusée Vous avez refusé cette permission trop de fois et vous devez maintenant l\'accorder manuellement dans les paramètres système. À propos @@ -64,7 +64,7 @@ Vérifiez que votre fichier de clés a une extension .keys et réessayez. Vérifiez que votre fichier de clés a une extension .bin et réessayez. Clés de chiffrement invalides - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Le fichier sélectionné est incorrect ou corrompu. Veuillez dumper à nouveau vos clés. Gestionnaire de pilotes du GPU Installer le pilote du GPU @@ -76,11 +76,11 @@ Ajouté récemment Commercial Homebrew - Ouvrir le dossier de yuzu - Gérer les fichiers internes de yuzu + Ouvrir le dossier de suyu + Gérer les fichiers internes de suyu Modifier l\'apparence de l\'application Aucun gestionnaire de fichiers trouvé - Impossible d\'ouvrir le répertoire de yuzu + Impossible d\'ouvrir le répertoire de suyu Veuillez localiser manuellement le dossier utilisateur avec le panneau latéral du gestionnaire de fichiers. Gérer les données de sauvegarde Données de sauvegarde trouvées. Veuillez sélectionner une option ci-dessous. @@ -101,7 +101,7 @@ L\'installation du firmware a échoué Assurez-vous que les fichiers NCA du firmware se trouvent à la racine du fichier ZIP, puis réessayez. Partager les logs de débogage - Partagez le fichier de log de yuzu pour déboguer les problèmes. + Partagez le fichier de log de suyu pour déboguer les problèmes. Aucun fichier de log trouvé Installer le contenu du jeu Installer une mise à jour ou un DLC @@ -114,11 +114,11 @@ Contenu du jeu installé avec succès %1$d installé avec succès %1$d écrasé avec succès - https://yuzu-emu.org/help/quickstart/#dumping-installed-updates + https://suyu-emu.org/help/quickstart/#dumping-installed-updates Pilotes personnalisés non supporté Le chargement des pilotes personnalisés ne sont pas actuellement pris en charge pour ce périphérique. Vérifiez à nouveau cette option à l\'avenir pour voir si la prise en charge a été ajoutée ! - Gérer les données de yuzu - Importer/exporter le firmware, les clés, les données utilisateur, et bien plus encore ! + Gérer les données de suyu + Importer/exporter le firmware, les clés, les données utilisateur, et bien plus encore ! Partager le fichier de sauvegarde Échec de l\'exportation de la sauvegarde Dossiers de jeux @@ -141,14 +141,14 @@ Vérifie l\'intégrité des contenus installés Les clés de chiffrement sont manquantes. Le firmware et les jeux commerciaux ne peuvent pas être déchiffrés - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Lanceur d\'applets Lancer des applets système en utilisant le firmware installé Firmware non installé Applet non disponible - prod.keys et le firmware sont installés et essayez à nouveau.]]> + prod.keys et le firmware sont installés et essayez à nouveau.]]> Album Afficher les images stockées dans le dossier de captures d\'écran de l\'utilisateur avec le visualiseur de photos système. Éditeur Mii @@ -166,28 +166,28 @@ Copié dans le presse-papier Un émulateur Switch open source Contributeurs - Fait avec \u2764 de l\'équipe yuzu - https://github.com/yuzu-emu/yuzu/graphs/contributors - Des projets qui rendent possible yuzu pour Android + Fait avec \u2764 de l\'équipe suyu + https://github.com/suyu-emu/suyu/graphs/contributors + Des projets qui rendent possible suyu pour Android Build Données utilisateur Importer/exporter toutes les données de l\'application.\n\nLors de l\'importation des données utilisateur, toutes les données utilisateur existantes seront supprimées ! Exportation des données utilisateur... Importation des données utilisateur... Importer des données utilisateur - Backup yuzu invalide + Backup suyu invalide Les données utilisateur ont été exportés avec succès Les données utilisateur ont été importées avec succès Exportation annulée Assurez-vous que les dossiers de données utilisateur se trouvent à la racine du dossier ZIP et contiennent un fichier de configuration à config/config.ini, puis réessayez. - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu Early Access Obtenir l\'Early Access - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea Fonctionnalités de pointe, accès anticipé aux mises à jour, et plus encore Avantages de l\'Early Access Fonctionnalités de pointe @@ -460,8 +460,8 @@ Votre ROM est cryptée - cartouches de jeu ou de vos titres installés.]]> - prod.keys est installé pour que les jeux puissent être déchiffrés.]]> + cartouches de jeu ou de vos titres installés.]]> + prod.keys est installé pour que les jeux puissent être déchiffrés.]]> Une erreur s\'est produite lors de l\'initialisation du noyau vidéo Cela est généralement dû à un pilote GPU incompatible. L\'installation d\'un pilote GPU personnalisé peut résoudre ce problème. Impossible de charger la ROM 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 72b19c9227..f1087d6131 100644 --- a/src/android/app/src/main/res/values-he/strings.xml +++ b/src/android/app/src/main/res/values-he/strings.xml @@ -1,14 +1,14 @@ - התוכנה תריץ משחקים לקונסולת ה Nintendo Switch. אף משחק או קבצים בעלי זכויות יוצרים נכללים.<br /><br /> לפני שאת/ה מתחיל בבקשה מצא את קובץ prod.keys]]> על המכשיר.<br /><br />קרא עוד]]> + התוכנה תריץ משחקים לקונסולת ה Nintendo Switch. אף משחק או קבצים בעלי זכויות יוצרים נכללים.<br /><br /> לפני שאת/ה מתחיל בבקשה מצא את קובץ prod.keys]]> על המכשיר.<br /><br />קרא עוד]]> התראות ותקלות מציג התראות כאשר משהו הולך לא כשורה. הרשאות התראות לא ניתנה! ברוכים הבאים! - למד איך להפעיל <b>yuzu</b> וקפוץ ישר לאמולציה. + למד איך להפעיל <b>suyu</b> וקפוץ ישר לאמולציה. כדי להתחיל מפתחות בחר את קובץ ה <b>prod.keys</b> שלך עם הכפתור למטה. @@ -32,10 +32,10 @@ חפש וסנן משחקים בחר תיקיית משחקים נהל את תיקיית המשחקים - אפשר ל yuzu לאכלס את רשימת המשחקים + אפשר ל suyu לאכלס את רשימת המשחקים לדלג על בחירת תיקיית המשחקים? משחקים לא יוצגו ברשימת המשחקים אם לנבחרה תיקיית משחקים. - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games חפש משחקים חפש בהגדרות ספריית משחקים נבחרה @@ -43,12 +43,12 @@ הכרחי בכדי לפענח משחקים לדלג על הוספת מפתחות? מפתחות חוקיים הכרחיים כדי לשחק במשחקים. רק אפליקציות פירטיות יפעלו אם תמשיך. - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction התראות תן גישה להתראות עם הכפתור למטה. תן הרשאה דלג על מתן הרשאה להתראות? - yuzu לא יוכל להתריע לך על מידע חשוב. + suyu לא יוכל להתריע לך על מידע חשוב. הרשאה נדחתה את/ה דיחת את ההרשאה יותר מדי פעמים ועכשיו את/ה צריך/ה לתת גישה באופן ידני בהגדרות. אודות @@ -64,7 +64,7 @@ ודא שלקובץ המפתחות שלך יש סיומת של key. ונסה/י שוב. ודא/י שלקובץ המפתחות שלך יש סיומת של bin. ונסה/י שוב. מפתחות הצפנה לא חוקיים - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys קבוץ שנבחר מושחת או לא נכון. בבקשה הוצא מחדש את המפתחות שלך. מנהל הדרייברים של המעבד הגרפי התקן דרייבר למעבד הגרפי @@ -76,11 +76,11 @@ הוסף לאחרונה קמעונאי Homebrew - פתח את תיקיית yuzu - נה ל את הקבצים הפנימיין של yuzu + פתח את תיקיית suyu + נה ל את הקבצים הפנימיין של suyu ערוך את נראות האפליקציה לא נמצא מנהל קבצים - לא יכול לפתוח את ספריית yuzu + לא יכול לפתוח את ספריית suyu בבקשה מקם את תיקיית המשתמש בפנל הצידי של מנהל הקבצים באופן ידני. נהל מידע שמור מידע שמור לא נמצא. בבקשה בחר/י אופציה מלמטה @@ -101,7 +101,7 @@ התקנת ה frimware נכשלה ודא שקבצי ה firmware nca נמצאים בשורש ה zip ונסה שוב. שתף את יומני הרישום של מיפוי הבאגים - שתף את קובץ יומני הרישום של yuzu בכדי לתקן בעיות + שתף את קובץ יומני הרישום של suyu בכדי לתקן בעיות לא נמצא קובץ יומן רישום התקן תוכן משחק התקן עדכוני משחק או DLC @@ -114,11 +114,11 @@ תוכן (או תכני) המשחק הותקנו בהצלחה %1$d הותקן בהצלחה %1$d נדרס/נכתב מעל בהצלחה - https://yuzu-emu.org/help/quickstart/#dumping-installed-updates + https://suyu-emu.org/help/quickstart/#dumping-installed-updates דרייברים מותאמים אישית לא נתמכים הטענת דרייבים מותאמים אישית לא נתמך כרגע על מכשיר זה. \nבבקשה בדוק אופציה זו בעתיד בכדי לראות אם נוספה תמיכה! - נהל את המידע של yuzu - יבא/יצא firmware, keys, מידע של משתמש ועוד! + נהל את המידע של suyu + יבא/יצא firmware, keys, מידע של משתמש ועוד! שתף קובץ שמירה נכשל בייצוא שמירה תיקיית משחקים @@ -126,14 +126,14 @@ הוסף תיקיית משחקים התיקייה הזו נוספה כבר! מאפייני תיקיית משחקים - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys משגר Applet מערכת שיגור Applet משתמשת בתוכנה המותקנת ה Firmware לא מותקן Applet לא זמין - prod.keysו firmwareשלך מותקנים ונסה שוב.]]> + prod.keysו firmwareשלך מותקנים ונסה שוב.]]> אלבום צפה בתמונות השמורות בתיקיית צילומי המסך של המשתמש בעזרת מציג התמונות של המערכת עורך Mii @@ -151,28 +151,28 @@ הועתק ללוח אמולטור Switch עם קוד פתוח תורמים - נוצר עם \u2764 מקבוצת yuzu - https://github.com/yuzu-emu/yuzu/graphs/contributors - פרוייקטים שהופכים את yuzu ל Android אפשרי + נוצר עם \u2764 מקבוצת suyu + https://github.com/suyu-emu/suyu/graphs/contributors + פרוייקטים שהופכים את suyu ל Android אפשרי גרסה נתוני משתמש יבא/יצא את כל נתוני האפליקציה.\n\nכאשר מייבאים את נתוני המשתמש, כל נתוני המשתמש הקיימים ימחקו! מייצא נתוני משתמש... מייבא נתוני משתמש... יבא נתוני משתמש - גיבוי yuzu לא חוקי + גיבוי suyu לא חוקי נתוני משתמש יוצאו בהצלחה נתוני משתמש יובאו בהצלחה ייצוא בוטל ודא שנתוני המשתמש נמצאים בשורש קובץ ה zip ושהוא מכיל קובץ סידור ב config/config.ini ונסה שוב. - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu גישה מוקדמת קבל גישה מוקדמת - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea תכונות חותכות קצה, גישה מוקדמת לעדכונים, ועוד יתרונות של גישה מקודמת תכונות חותכות קצה @@ -325,8 +325,8 @@ אימות התקינות הצליח! המשחק שלך מוצפן - כרטיסי המשחקאו הכותרות המותקנות שלך.]]> - prod.keys מותקן כך שניתן יהיה לפענח משחקים.]]> + כרטיסי המשחקאו הכותרות המותקנות שלך.]]> + prod.keys מותקן כך שניתן יהיה לפענח משחקים.]]> התרחשה בעיה באתחול של ליבת הווידאו זה בדרך כלל נגרם על ידי דרייבר לא מתאים עבור המעבד הגרפי. התקנת דרייבר אשר מתאים למעבד הגרפי יכול לפתור את הבעיה הזו. אין אפשרות לטעון את המשחק 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 86d597a7ad..098d65f9fa 100644 --- a/src/android/app/src/main/res/values-hu/strings.xml +++ b/src/android/app/src/main/res/values-hu/strings.xml @@ -1,14 +1,14 @@ - 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 prod.keys]]> fájl helyét a készülék tárhelyén<br /><br />Tudj meg többet]]> + 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 prod.keys]]> fájl helyét a készülék tárhelyén<br /><br />Tudj meg többet]]> Megjegyzések és hibák Értesítések megjelenítése, ha valami rosszul sül el. Nincs engedély az értesítés megjelenítéséhez! Üdvözöljük! - Ismerkedj meg a <b>yuzu</b> beállításával és ugorj bele az emulációba. + Ismerkedj meg a <b>suyu</b> beállításával és ugorj bele az emulációba. Vágjunk bele Kulcsok Válaszd ki a <b>prod.keys</b> fájlodat az alábbi gombbal. @@ -34,7 +34,7 @@ Játékmappák kezelése Kihagyod a játékok mappa kiválasztását? A játékok nem jelennek meg a Játékok listában, ha egy mappa nincs kijelölve. - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games Játékok keresése Beállítások keresése Játékok könyvtár kiválasztva @@ -42,12 +42,12 @@ Kiskereskedelmi játékok dekódolásához szükséges Kihagyod a kulcsok hozzáadását? A kiskereskedelmi játékok emulálásához érvényes kulcsokra van szükség. Csak a homebrew alkalmazások fognak működni, ha folytatod. - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction Értesítések Értesítési engedélyek megadása az alábbi gombbal. Engedély megadása Kihagyod az értesítési engedély megadását? - yuzu nem fog tudni értesíteni a fontos információkról + suyu nem fog tudni értesíteni a fontos információkról Engedély megtagadva Túl gyakran utasítottad el a hozzáférést, így manuálisan kell jóváhagynod a rendszer beállításokban. Névjegy @@ -63,7 +63,7 @@ Győződj meg róla, hogy a titkosító fájlod .keys kiterjesztéssel rendelkezik, majd próbáld újra. Győződj meg róla, hogy a titkosító fájlod .bin kiterjesztéssel rendelkezik, majd próbáld újra. Érvénytelen titkosítókulcsok - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys A kiválasztott fájl helytelen, vagy sérült. Állíts össze egy új kulcsot. GPU illesztőprogram-kezelő GPU illesztőprogram telepítése @@ -74,11 +74,11 @@ Nemrég játszva Nemrég hozzáadva Kiskereskedelmi - yuzu mappa megnyitása - yuzu belső fájljainak kezelése + suyu mappa megnyitása + suyu belső fájljainak kezelése Az alkalmazás megjelenésének módosítása Nem található fájlkezelő - Nem sikerült megnyitni a yuzu könyvtárat + Nem sikerült megnyitni a suyu könyvtárat Kérjük, manuálisan keresd meg a felhasználói mappát a fájlkezelő oldalsó paneljével. Mentésadatok kezelése Mentés található. Kérjük, válassz egyet az alábbi opciók közül. @@ -99,7 +99,7 @@ Firmware telepítése sikertelen Győződj meg róla, hogy a firmware nca fájlok a zip gyökerénél vannak, és próbáld meg újra. Hibakereső logok megosztása - A yuzu naplófájl megosztása a problémák elhárításához + A suyu naplófájl megosztása a problémák elhárításához Nem található log fájl Játéktartalom telepítése Játékfrissítések vagy DLC telepítése @@ -112,11 +112,11 @@ Játéktartalom sikeresen telepítve %1$d sikeresen telepítve %1$d sikeresen felülírva - https://yuzu-emu.org/help/quickstart/#dumping-installed-updates + https://suyu-emu.org/help/quickstart/#dumping-installed-updates Egyéni illesztőprogramok nem támogatottak Egyéni illesztőprogram telepítése jelenleg nem támogatott ezen az eszközön.\nNézz vissza később, hátha hozzáadtuk a támogatását! - yuzu adatok kezelése - Firmware, kulcsok, felhasználói adatok és egyebek importálása/exportálása + suyu adatok kezelése + Firmware, kulcsok, felhasználói adatok és egyebek importálása/exportálása Mentési fájl megosztása A mentés exportálása sikertelen Játékmappák @@ -137,14 +137,14 @@ A telepített tartalom épségét ellenőrzi Hiányzó titkosítókulcsok A Firmware és a kiskereskedelmi (retail) játékok nem dekódolhatók - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Applet indító Rendszer appletek indítása a telepített firmware-rel Firmware nincs telepítve Applet nem elérhető - prod.keys fájl és a firmware telepítve van, majd próbáld újra.]]> + prod.keys fájl és a firmware telepítve van, majd próbáld újra.]]> Album Képernyőképek megtekintése a rendszer fényképnézegetőjével Mii szerkesztés @@ -162,27 +162,27 @@ Másolva a vágólapra Egy nyílt forráskódú Switch emulátor Hozzájárulók - \u2764 által készítve a yuzu csapattól - https://github.com/yuzu-emu/yuzu/graphs/contributors - Projektek, amik nélkül a yuzu nem jöhetett volna létre Androidra + \u2764 által készítve a suyu csapattól + https://github.com/suyu-emu/suyu/graphs/contributors + Projektek, amik nélkül a suyu nem jöhetett volna létre Androidra Felhasználói adatok Az összes alkalmazásadat importálása/exportálása.\n\nA felhasználói adatok importálásakor az összes meglévő felhasználói adat törlődik! Felhasználói adatok exportálása... Felhasználói adatok importálása... Felhasználói adatok importálása - Érvénytelen yuzu biztonsági másolat + Érvénytelen suyu biztonsági másolat Felhasználói adatok sikeresen exportálva Felhasználói adatok sikeresen importálva Exportálás megszakítva Ellenőrizd, hogy a felhasználói adatok mappái a zip mappa gyökerében vannak, és tartalmaznak egy konfig fájlt a config/config.ini címen, majd próbáld meg újra. - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu Korai hozzáférés Szerezz korai hozzáférést - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea Legújabb funkciók, korai hozzáférés a frissítésekhez, és sok más Korai hozzáférés előnyei Legújabb funkciók @@ -448,7 +448,7 @@ ROM titkosítva - prod.keys fájl telepítve van, hogy a játékok visszafejthetők legyenek.]]> + prod.keys fájl telepítve van, hogy a játékok visszafejthetők legyenek.]]> Hiba lépett fel a videómag inicializása során Ezt általában egy nem kompatibilis GPU illesztő okozza. Egyéni GPU illesztőprogram telepítése megoldhatja a problémát. Nem sikerült betölteni a ROM-ot diff --git a/src/android/app/src/main/res/values-id/strings.xml b/src/android/app/src/main/res/values-id/strings.xml index c79e84d8a3..c8437b45c1 100644 --- a/src/android/app/src/main/res/values-id/strings.xml +++ b/src/android/app/src/main/res/values-id/strings.xml @@ -1,14 +1,14 @@ - Perangkat lunak ini akan menjalankan game untuk konsol game Nintendo Switch. Tidak ada judul game atau kunci yang disertakan.<br /><br />Sebelum memulai, harap cari file prod.keys ]]> di penyimpanan perangkat anda. <br /><br /> Selengkapnya ]]> + Perangkat lunak ini akan menjalankan game untuk konsol game Nintendo Switch. Tidak ada judul game atau kunci yang disertakan.<br /><br />Sebelum memulai, harap cari file prod.keys ]]> di penyimpanan perangkat anda. <br /><br /> Selengkapnya ]]> Pemberitahuan dan error Menampilkan pemberitahuan ketika terjadi kesalahan. Izin notifikasi tidak diberikan! Selamat datang! - Pelajari cara menyiapkan <b>yuzu</b> dan masuk ke dalam emulasi. + Pelajari cara menyiapkan <b>suyu</b> dan masuk ke dalam emulasi. Memulai Kunci Pilih file <b>prod.keys</b> Anda dengan tombol di bawah ini. @@ -32,10 +32,10 @@ Cari dan filter game Pilih folder permainan Kelola folder game - Izinkan yuzu mengisi daftar game + Izinkan suyu mengisi daftar game Lewati pemilihan folder game? Game tidak akan muncul di list jika tidak ada folder yang dipilih. - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games Cari permainan Cari pengaturan Direktori game sudah terpilih @@ -43,12 +43,12 @@ Diperlukan untuk mendekripsi game retail Lewati penginstalan keys? Perlu keys yang valid untuk meng-emulate game retail. Hanya homebrew apps yang akan berfungsi jika kamu melanjutkan. - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction Notifikasi Berikan izin notifikasi dengan tombol di bawah ini. Berikan izin Lewati pemberian izin notifikasi? - yuzu tidak akan dapat memberi tahu Anda tentang informasi penting. + suyu tidak akan dapat memberi tahu Anda tentang informasi penting. Izin ditolak Kamu terlalu sering menolak izin ini dan sekarang anda harus memberikannya secara manual di pengaturan sistem. Tentang @@ -64,7 +64,7 @@ Pastikan file keys anda memiliki format .keys dan coba lagi. Pastikan file keys anda memiliki format .bin dan coba lagi. Keys enkripsi tidak valid - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys File yang dipilih salah atau rusak. Silakan masukkan kembali kunci Anda. Manajer driver GPU Install driver GPU @@ -76,11 +76,11 @@ baru ditambahkan Retail Homebrew - Buka folder yuzu - Kelola file internal yuzu\'s + Buka folder suyu + Kelola file internal suyu\'s Ubah tampilan aplikasi Tidak menemukan file manager - Tidak bisa membuka direktori yuzu + Tidak bisa membuka direktori suyu Silakan cari folder pengguna dengan panel samping manajer file secara manual. Kelola save data Data simpanan ditemukan. Silakan pilih opsi di bawah. @@ -101,7 +101,7 @@ Gagal memasang Firmware. Pastikan file nca firmware terdapat pada folder utama dari file .zip dan coba lagi. Bagikan log debug - Bagikan file log yuzu untuk mendebug isu + Bagikan file log suyu untuk mendebug isu Tidak ada log file yang ditemukan Instal konten game. Instal pembaruan game atau DLC @@ -114,11 +114,11 @@ Konten(-konten) game sudah berhasil terinstal. %1$d telah berhasil terinstal %1$d telah berhasil ditimpa. - https://yuzu-emu.org/help/quickstart/#dumping-installed-updates + https://suyu-emu.org/help/quickstart/#dumping-installed-updates Driver kustom tidak didukung Driver kustom saat ini tidak dapat digunakan pada perangkat ini. \nCek opsi ini lain waktu untuk mengetahui apakah dapat digunakan! - Kelola data Yuzu. - Impor/expor firmware, key, data pengguna, dan sebagainya! + Kelola data Suyu. + Impor/expor firmware, key, data pengguna, dan sebagainya! Bagikan file simpanan. Gagal mengekspor simpanan. Folder Game @@ -137,7 +137,7 @@ Memeriksa semua konten yang terinstal dari kerusakan Kunci enkripsi hilang Firmware dan game retail tidak dapat didekripsi - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Luncurkan applet @@ -162,28 +162,28 @@ Salin ke papan klip Emulator Switch Open-Source Kontributor - Dibuat dengan \u2764 dari tim yuzu - https://github.com/yuzu-emu/yuzu/graphs/contributors - Proyek yang memungkinkan yuzu untuk Android + Dibuat dengan \u2764 dari tim suyu + https://github.com/suyu-emu/suyu/graphs/contributors + Proyek yang memungkinkan suyu untuk Android Versi Data pengguna Impor/ekspor semua data aplikasi.\n\nKetika mengimpor data pengguna, semua data pengguna yang ada akan dihapus! Mengekspor data pengguna Mengimpor data pengguna Impor data pengguna - cadangan yuzu tidak valid + cadangan suyu tidak valid berhasil mengekspor data pengguna Berhasil mengimpor data pengguna Ekspor Dibatalkan Pastikan folder data pengguna berada di akar folder zip dan berisi file konfigurasi di config/config.ini dan coba lagi. - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu Akses lebih awal Dapatkan akses lebih awal - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea Fitur-fitur yang paling baru, akses lebih awal untuk perbaruan, dan lain-lain. Manfaat Akses Awal Fitur-fitur yang paling baru @@ -402,8 +402,8 @@ ROM-mu ter-enkripsi - kartu permainan atau judul yang terinstal.]]> - prod.keys diinstal sehingga game dapat didekripsi.]]> + kartu permainan atau judul yang terinstal.]]> + prod.keys diinstal sehingga game dapat didekripsi.]]> Terjadi kesalahan ketika menginisialisasi inti video. Hal ini biasanya disebabkan oleh driver GPU yang tidak kompatibel. Menginstal driver GPU khusus dapat mengatasi masalah ini Tidak Dapat Memuat ROM 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 5676b0bc15..10552f1504 100644 --- a/src/android/app/src/main/res/values-it/strings.xml +++ b/src/android/app/src/main/res/values-it/strings.xml @@ -1,14 +1,14 @@ - 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 prod.keys ]]> nella memoria del tuo dispositivo.<br /><br />Scopri di più]]> + 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 prod.keys ]]> nella memoria del tuo dispositivo.<br /><br />Scopri di più]]> Avvisi ed errori Mostra le notifiche quando qualcosa va storto. Autorizzazione di notifica non concessa! Benvenuto! - Scopri come configurare <b>yuzu</b> e passare all\'emulazione. + Scopri come configurare <b>suyu</b> e passare all\'emulazione. Iniziare Chiavi Seleziona il tuo file <b>prod.keys</b> con il pulsante in basso. @@ -32,10 +32,10 @@ Cerca e filtra i giochi Seleziona la cartella dei giochi Gestisci le cartelle dei giochi - Consente a yuzu di popolare l\'elenco dei giochi + Consente a suyu di popolare l\'elenco dei giochi Saltare la selezione della cartella dei giochi? I giochi non saranno mostrati nella lista dei giochi se una cartella non è selezionata. - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games Cerca giochi Cerca impostazione Cartella dei giochi selezionata @@ -43,12 +43,12 @@ Necessario per decrittografare i giochi Saltare l\'aggiunta delle chiavi? Sono necessarie delle chiavi valide per emulare i giochi. Se continui, funzioneranno solo le app homebrew. - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction Notifiche Concedi l\'autorizzazione alle notifiche con il pulsante in basso. Concedere l\'autorizzazione Saltare la concessione dell\'autorizzazione alle notifiche? - yuzu non sarà in grado di notificarti informazioni importanti. + suyu non sarà in grado di notificarti informazioni importanti. Permesso negato Hai negato l\'autorizzazione troppe volte ed ora devi concederla manualmente nelle impostazioni di sistema. Informazioni @@ -64,7 +64,7 @@ Controlla che le tue chiavi abbiano l\'estensione .keys e prova di nuovo. Controlla che le tue chiavi abbiano l\'estensione .bin e prova di nuovo Chiavi di crittografia non valide - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Il file selezionato è incorretto o corrotto. Per favore riesegui il dump delle tue chiavi. Gestore driver GPU Installa i driver GPU @@ -76,11 +76,11 @@ Aggiunti recentemente Rivenditore Homebrew - Apri la cartella di yuzu - Gestisci i file interni di yuzu + Apri la cartella di suyu + Gestisci i file interni di suyu Modifica l\'aspetto dell\'app Nessun file manager trovato - Impossibile aprire la cartella di yuzu + Impossibile aprire la cartella di suyu Per favore individua la cartella dell\'utente manualmente con il pannello laterale del file manager. Gestisci i salvataggi Salvataggio non trovato. Seleziona un\'opzione di seguito. @@ -101,7 +101,7 @@ L\'installazione del firmware è fallita Accertati che i file .nca del firmware siano contenuti direttamente nella radice dello .zip e riprova. Condividi log di debug - Condividi i log di yuzu per ricevere supporto + Condividi i log di suyu per ricevere supporto Nessun file di log trovato Installa contenuti di gioco Installa aggiornamenti o DLC @@ -114,11 +114,11 @@ Contenuto/i di gioco installato/i con successo. %1$dinstallato con successo. %1$dsovrascritto con successo - https://yuzu-emu.org/help/quickstart/#dumping-installed-updates + https://suyu-emu.org/help/quickstart/#dumping-installed-updates I driver personalizzati non sono supportati. I driver personalizzati non sono attualmente supportati su questo dispositivo.\n Ricontrolla in futuro. - Gestisci i dati di Yuzu - Importa/Esporta il firmware, le keys, i dati utente, e altro! + Gestisci i dati di Suyu + Importa/Esporta il firmware, le keys, i dati utente, e altro! Condividi i tuoi dati di salvataggio Errore durante l\'esportazione del salvataggio Cartelle di gioco @@ -129,14 +129,14 @@ Nessun salvataggio trovato Verifica i contenuti installati Verifica l\'integrità di tutti i contenuti installati. - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Avvia applet Avvia applet di sistema usando il firmware installato Firmware non installato Applet non disponibile - prod.keys e il firmware siano installati e riprova.]]> + prod.keys e il firmware siano installati e riprova.]]> Album Visualizza le immagini salvate nella cartella screenshots dell\'utente con il visualizzatore immagini di sistema Modifica Mii @@ -154,28 +154,28 @@ Copiato negli appunti Un emulatore della Switch open-source. Collaboratori - Realizzato con \u2764 dal team yuzu - https://github.com/yuzu-emu/yuzu/graphs/contributors - Progetti che rendono yuzu per Android possibile + Realizzato con \u2764 dal team suyu + https://github.com/suyu-emu/suyu/graphs/contributors + Progetti che rendono suyu per Android possibile Compilazione Dati Utente Importa/Esporta tutti i dati dell\'applicazione.\n\nDurante l\'importazione dei Dati Utente, quelli già esistenti verranno ELIMINATI. Esportazione dei Dati Utente... Importazione dei Dati Utente... Importa i Dati Utente - Backup di Yuzu Invalido + Backup di Suyu Invalido Dati Utente esportati con successo Dati Utente importati con successo. Esportazione annullata Assicurati che la cartella dei Dati dell\'utente stiano nella radice del file.zip e che sia presente una cartella config in config/config.ini, poi, riprova. - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu Accesso Anticipato Ottieni l\'accesso anticipato - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea Funzionalità all\'avanguardia, aggiornamenti in anticipo e altro Vantaggi dell\'accesso anticipato Funzionalità all\'avanguardia @@ -364,8 +364,8 @@ L\'integrità dei contenuti non è stata validata La tua ROM è criptata - dump delle tue cartucce di giocooppure dei titoli già installati.]]> - prod.keys sia installato in modo che i giochi possano essere decrittati.]]> + dump delle tue cartucce di giocooppure dei titoli già installati.]]> + prod.keys sia installato in modo che i giochi possano essere decrittati.]]> È stato riscontrato un errore nell\'inizializzazione del core video Questo è causato solitamente dal driver incompatibile di una GPU. L\'installazione di driver GPU personalizzati potrebbe risolvere questo problema. Impossibile caricare la ROM 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 e47037837e..21e2070e31 100644 --- a/src/android/app/src/main/res/values-ja/strings.xml +++ b/src/android/app/src/main/res/values-ja/strings.xml @@ -1,14 +1,14 @@ - このソフトウェアでは、Nintendo Switchのゲームを実行できます。 ゲームソフトやキーは含まれません。<br /><br />事前に、 prod.keys ]]> ファイルをストレージに配置しておいてください。<br /><br />詳細]]> + このソフトウェアでは、Nintendo Switchのゲームを実行できます。 ゲームソフトやキーは含まれません。<br /><br />事前に、 prod.keys ]]> ファイルをストレージに配置しておいてください。<br /><br />詳細]]> 通知とエラー 問題の発生時に通知を表示します。 通知が許可されていません! ようこそ! - <b>yuzu</b> のセットアップ方法を学び、エミュレーションに飛び込みましょう。 + <b>suyu</b> のセットアップ方法を学び、エミュレーションに飛び込みましょう。 はじめる キー 下のボタンから <b>prod.keys</b> ファイルを選択してください。 @@ -31,10 +31,10 @@ ファイルが存在しないかゲームフォルダが選択されていません。 ゲームの検索と絞り込み ゲームフォルダ - ゲームをyuzuのゲームリストに追加します + ゲームをsuyuのゲームリストに追加します ゲームフォルダの選択をスキップしますか? フォルダを選択しないと、ゲームがリストに表示されません。 - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games ゲームを検索 設定を検索 フォルダを選択しました @@ -42,12 +42,12 @@ 製品版ゲームの復号化に必要です キーの追加をスキップしますか? 製品版ゲームのエミュレーションには、有効なキーが必要です。続行すると自作アプリしか機能しません。 - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction 通知 下のボタンで通知を許可してください。 許可 通知の許可をスキップしますか? - yuzuは重要なお知らせを通知できません。 + suyuは重要なお知らせを通知できません。 権限が拒否されました この権限を複数回拒否したため、設定から手動で許可する必要があります。 情報 @@ -63,7 +63,7 @@ キーの拡張子が.keysであることを確認し、再度お試しください。 キーの拡張子が.binであることを確認し、再度お試しください。 暗号化キーが無効 - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys ファイルが間違っているか破損しています。キーを再ダンプしてください。 GPUドライバーの管理 GPUドライバー @@ -75,11 +75,11 @@ 最近追加された 製品版 自作 - yuzu フォルダを開く - yuzu内部のファイルを管理します + suyu フォルダを開く + suyu内部のファイルを管理します アプリの見た目を変更 ファイルマネージャーが見つかりませんでした - yuzuのディレクトリを開けません + suyuのディレクトリを開けません ファイルマネージャのサイドパネルでユーザーフォルダを手動で探してください。 セーブデータ セーブデータが見つかりました。操作を選択してください。 @@ -97,7 +97,7 @@ インストールが完了しました インストール失敗 デバッグログ - yuzuのログファイルを共有して問題をデバッグします + suyuのログファイルを共有して問題をデバッグします ログが見つかりません 追加コンテンツ 更新データやDLCをインストールします @@ -107,11 +107,11 @@ ゲームコンテンツのインストールに成功しました %1$d のインストールに成功しました %1$d の上書きに成功しました - https://yuzu-emu.org/help/quickstart/#dumping-installed-updates + https://suyu-emu.org/help/quickstart/#dumping-installed-updates カスタムドライバはサポートされていません - yuzu データを管理 + suyu データを管理 セーブファイルを共有 - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys ファームウェア未インストール アルバム @@ -121,9 +121,9 @@ クリップボードにコピーしました オープンソースのSwitchエミュレータ 貢献者 - yuzuチームの\u2764で作られた - https://github.com/yuzu-emu/yuzu/graphs/contributors - yuzu for Androidの作成を可能にしたプロジェクト + suyuチームの\u2764で作られた + https://github.com/suyu-emu/suyu/graphs/contributors + suyu for Androidの作成を可能にしたプロジェクト ビルド ユーザデータ ユーザデータをエクスポート中... @@ -132,14 +132,14 @@ ユーザデータのエクスポートに成功しました ユーザデータのインポートに成功しました エクスポートをキャンセルしました - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu 早期アクセス 早期アクセスを手に入れる - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea 最先端の機能、アップデートの早期アクセスなど 早期アクセスのメリット 最先端の機能 @@ -299,7 +299,7 @@ 整合性の確認に失敗しました! ROMが暗号化されています - prod.keys ファイルがインストールされていることを確認してください。]]> + prod.keys ファイルがインストールされていることを確認してください。]]> ビデオコアの初期化中にエラーが発生しました これは通常、互換性のないGPUドライバーが原因で発生します。 カスタムGPUドライバーをインストールすると、問題が解決する可能性があります。 ROMの読み込みに失敗しました 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 c4a0242a8f..a2d2bb9511 100644 --- a/src/android/app/src/main/res/values-ko/strings.xml +++ b/src/android/app/src/main/res/values-ko/strings.xml @@ -1,14 +1,14 @@ - 이 소프트웨어는 Nintendo Switch 게임을 실행합니다. 게임 타이틀이나 키는 포함되어 있지 않습니다.<br /><br />시작하기 전에 장치 저장소에서 prod.keys ]]> 파일을 찾아주세요.<br /><br />자세히 알아보기]]> + 이 소프트웨어는 Nintendo Switch 게임을 실행합니다. 게임 타이틀이나 키는 포함되어 있지 않습니다.<br /><br />시작하기 전에 장치 저장소에서 prod.keys ]]> 파일을 찾아주세요.<br /><br />자세히 알아보기]]> 알림 및 오류 문제가 발생하면 알림을 표시합니다. 알림 권한이 부여되지 않았습니다! 환영합니다! - <b>yuzu</b>를 설정하고 에뮬레이션을 시작하세요. + <b>suyu</b>를 설정하고 에뮬레이션을 시작하세요. 시작하기 키 설정 아래 버튼으로 <b>prod.keys</b> 파일을 선택합니다. @@ -32,10 +32,10 @@ 게임 검색 및 필터링 게임 폴더 선택 게임 폴더 관리 - yuzu에 게임 목록 추가하기 + suyu에 게임 목록 추가하기 게임 폴더 선택을 건너뛰겠습니까? 폴더를 선택하지 않으면 게임 목록에 게임이 표시되지 않습니다. - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games 게임 검색 검색 설정 게임 디렉터리를 설정했습니다. @@ -43,12 +43,12 @@ 패키지 게임 암호 해독에 필요 키 추가를 건너뛰겠습니까? 패키지 게임을 에뮬레이트하려면 유효한 키 값이 필요합니다. 이 단계를 건너뛰면 홈브류 게임만 실행할 수 있습니다. - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction 알림 아래 버튼으로 알림 권한을 부여합니다. 알림 켜기 알림을 끄겠습니까? - yuzu가 중요한 정보를 알려드리지 않습니다. + suyu가 중요한 정보를 알려드리지 않습니다. 권한 거부됨 권한 허용을 너무 많이 거부하여 시스템 설정에서 수동으로 권한을 부여해야 합니다. 정보 @@ -64,7 +64,7 @@ 키 파일의 확장자가 .keys인지 확인하고 다시 시도하세요. 키 파일의 확장자가 .bin인지 확인하고 다시 시도하세요. 암호화 키가 올바르지 않음 - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys 선택한 파일이 잘못되었거나 손상되었습니다. 키를 다시 덤프하세요. GPU 드라이버 관리자 GPU 드라이버 설치 @@ -76,11 +76,11 @@ 최근 추가 패키지 홈브류 - yuzu 폴더 열기 - yuzu의 내부 파일 관리 + suyu 폴더 열기 + suyu의 내부 파일 관리 앱 디자인 편집 파일 관리자를 찾을 수 없음 - yuzu 디렉터리를 열 수 없음 + suyu 디렉터리를 열 수 없음 파일 관리자의 사이드 패널에서 사용자 폴더를 수동으로 찾아주세요. 세이브 데이터 관리 세이브 데이터를 발견했습니다. 아래에서 옵션을 선택하세요. @@ -101,7 +101,7 @@ 펌웨어 설치 실패 펌웨어 NCA 파일이 ZIP 파일의 루트 디렉토리에 위치한지 확인하고 다시 시도하세요. 디버그 로그 공유 - 문제 해결을 위한 yuzu 로그 파일 공유 + 문제 해결을 위한 suyu 로그 파일 공유 로그 파일을 찾을 수 없습니다. 게임 콘텐츠 설치 게임 업데이트 또는 DLC 설치 @@ -114,11 +114,11 @@ 게임 콘텐츠 설치됨 %1$d개를 설치했습니다. %1$d개를 덮어씌웠습니다. - https://yuzu-emu.org/help/quickstart/#dumping-installed-updates + https://suyu-emu.org/help/quickstart/#dumping-installed-updates 사용자 지정 드라이버는 지원하지 않습니다. 이 장치의 사용자 지정 드라이버 로딩은 현재 지원하지 않습니다.\n나중에 이 옵션을 확인하면 지원이 추가되었는지 확인할 수 있습니다. - yuzu 데이터 관리 - 펌웨어, 키 값, 유저 데이터 등을 가져오기 또는 내보내기 + suyu 데이터 관리 + 펌웨어, 키 값, 유저 데이터 등을 가져오기 또는 내보내기 세이브 파일 공유 세이브 내보내기 실패 게임 폴더 @@ -137,14 +137,14 @@ 전체 설치된 콘텐츠의 손상을 확인합니다. 암호화 키를 찾을 수 없음 펌웨어 및 패키지 게임을 해독할 수 없음 - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys 애플릿 런처 설치된 펌웨어를 사용해 시스템 애플릿을 실행합니다. 펌웨어가 설치되지 않았습니다. 애플릿을 사용할 수 없음 - prod.keys 파일과 펌웨어가 설치되었는지 확인하고 다시 시도하세요.]]> + prod.keys 파일과 펌웨어가 설치되었는지 확인하고 다시 시도하세요.]]> 앨범 시스템 사진 뷰어로 유저 스크린샷 폴더에 저장된 이미지를 확인합니다. Mii 편집 @@ -162,28 +162,28 @@ 클립보드에 복사되었습니다. 오픈 소스 Switch 에뮬레이터 기여자 - yuzu 팀의 \u2764로 제작 - https://github.com/yuzu-emu/yuzu/graphs/contributors - Android용 yuzu를 가능하게 하는 프로젝트 + suyu 팀의 \u2764로 제작 + https://github.com/suyu-emu/suyu/graphs/contributors + Android용 suyu를 가능하게 하는 프로젝트 빌드 유저 데이터 모든 앱 데이터를 가져오거나 내보냅니다.\n\n유저 데이터를 가져올 경우 현재의 모든 데이터는 삭제됩니다. 유저 데이터 내보내는 중... 유저 데이터 가져오는 중... 유저 데이터 가져오기 - 올바르지 않은 yuzu 백업 파일 + 올바르지 않은 suyu 백업 파일 유저 데이터를 내보냈습니다. 유저 데이터를 가져왔습니다. 내보내기 취소됨 유저 데이터 폴더가 ZIP 폴더의 루트 디렉토리에 위치하고 config/config.ini 구성 파일이 있는지 확인하고 다시 시도하세요. - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu 앞서 해보기 앞서 해보기 신청 - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea 최신 기능, 업데이트 미리 체험 등 앞서 해보기 혜택 최신 기능 @@ -403,8 +403,8 @@ 롬 파일이 암호화되어있음 - 게임 카트리지 또는 설치된 타이틀을 다시 덤프하세요.]]> - prod.keys 파일이 설치되어 있는지 확인하세요.]]> + 게임 카트리지 또는 설치된 타이틀을 다시 덤프하세요.]]> + prod.keys 파일이 설치되어 있는지 확인하세요.]]> 비디오 코어를 초기화하는 동안 오류 발생 일반적으로 이 문제는 호환되지 않는 GPU 드라이버로 인해 발생합니다. 사용자 지정 GPU 드라이버를 설치하면 이 문제가 해결될 수 있습니다. 롬 파일을 불러올 수 없음 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 01e4ee4c84..9ce92d899f 100644 --- a/src/android/app/src/main/res/values-nb/strings.xml +++ b/src/android/app/src/main/res/values-nb/strings.xml @@ -1,14 +1,14 @@ - 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 prod.keys ]]> filen din på enhetslagringen.<br /><br />Lær mer]]> + 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 prod.keys ]]> filen din på enhetslagringen.<br /><br />Lær mer]]> Merknader og feil Viser varsler når noe går galt. Varslingstillatelse ikke gitt! Velkommen! - Lær å sette opp <b>yuzu</b> og hopp inn i emulering. + Lær å sette opp <b>suyu</b> og hopp inn i emulering. Kom i gang Nøkler Velg din <b>prod.keys</b> fil ved å bruke knappen under. @@ -29,22 +29,22 @@ Ingen filer ble funnet eller ingen spillkatalog er valgt ennå. Søk og filtrer spill Velg spillmappe - Gjør det mulig for yuzu å fylle ut spillelisten. + Gjør det mulig for suyu å fylle ut spillelisten. Hoppe over valg av spillmappe? Spill vises ikke i Spill-listen hvis en mappe ikke er valgt. - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games Søk i spill| Spillkatalogen er valgt Installer prod.keys Nødvendig for å dekryptere spill Hoppe over å legge til nøkler? Gyldige nøkler er påkrevd for å emulere spill. Bare hjemmebryggede apper vil fungere hvis du fortsetter. - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction Varsler Gi varslingstillatelse med knappen nedenfor. Gi tillatelse Hoppe over å gi tillatelse til varsling? - yuzu vil ikke kunne varsle deg om viktig informasjon. + suyu vil ikke kunne varsle deg om viktig informasjon. Tillatelse avslått Du har nektet denne tillatelsen for mange ganger, og nå må du gi den manuelt i systeminnstillingene. Om @@ -60,7 +60,7 @@ Kontroller at nøkkelfilen har filtypen .keys, og prøv igjen. Kontroller at nøkkelfilen har filtypen .bin, og prøv igjen. Ugyldige krypteringsnøkler - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Den valgte filen er feil eller ødelagt. Vennligst dump nøklene på nytt. Installer GPU-driver Installer alternative drivere for potensielt bedre ytelse eller nøyaktighet. @@ -70,11 +70,11 @@ Nylig lagt til Butikkhandel Homebrew - Åpne yuzu-mappen - Administrere yuzus interne filer + Åpne suyu-mappen + Administrere suyus interne filer Endre appens utseende Ingen filbehandler funnet - Kunne ikke åpne yuzu-katalogen + Kunne ikke åpne suyu-katalogen Finn brukermappen manuelt med filbehandlingens sidepanel. Administrere lagringsdata Lagringsdata funnet. Velg et alternativ nedenfor. @@ -90,30 +90,30 @@ Fastvaren er vellykket installert Installasjon av fastvare mislyktes Del feilsøkingslogger - Del yuzus loggfil for å feilsøke problemer + Del suyus loggfil for å feilsøke problemer Ingen loggfil funnet Installer spillinnhold Installer spilloppdateringer eller DLC - https://yuzu-emu.org/help/quickstart/#dumping-installed-updates - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-installed-updates + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Gaia er ikke ekte Kopiert til utklippstavlen En Switch-emulator med åpen kildekode Bidragsytere - Laget med \u2764 fra yuzu-teamet - https://github.com/yuzu-emu/yuzu/graphs/contributors - Prosjekter som gjør yuzu for Android mulig + Laget med \u2764 fra suyu-teamet + https://github.com/suyu-emu/suyu/graphs/contributors + Prosjekter som gjør suyu for Android mulig Bygg - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu Tidlig tilgang Få tidlig tilgang - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea Banebrytende funksjoner, tidlig tilgang til oppdateringer og mye mer. Fordeler ved tidlig tilgang Avanserte funksjoner @@ -257,7 +257,7 @@ Integritetsverifisering mislyktes! ROM-en din er kryptert - prod.keys filen er installert slik at spillene kan dekrypteres.]]> + prod.keys filen er installert slik at spillene kan dekrypteres.]]> Det oppstod en feil ved initialisering av videokjernen Dette skyldes vanligvis en inkompatibel GPU-driver. Installering av en tilpasset GPU-driver kan løse problemet. Kunne ikke laste inn ROM diff --git a/src/android/app/src/main/res/values-night-v31/themes.xml b/src/android/app/src/main/res/values-night-v31/themes.xml index 631d7fd1b0..bac0779b17 100644 --- a/src/android/app/src/main/res/values-night-v31/themes.xml +++ b/src/android/app/src/main/res/values-night-v31/themes.xml @@ -1,7 +1,7 @@ - diff --git a/src/android/app/src/main/res/values-night/yuzu_colors.xml b/src/android/app/src/main/res/values-night/yuzu_colors.xml deleted file mode 100644 index 49d8233241..0000000000 --- a/src/android/app/src/main/res/values-night/yuzu_colors.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - #A7DDEC - #003399 - #31323F - #D1E4FF - #BAC8DB - #253140 - #3B4858 - #D6E4F7 - #D6BEE5 - #3A2948 - #524060 - #F2DAFF - #FFB4AB - #93000A - #690005 - #FFDAD6 - #1A1C1E - #E2E2E6 - #1B1B1D - #E2E2E6 - #26282C - #C3C7CF - #8C9199 - #1A1C1E - #E2E2E6 - #0062A2 - #000000 - #9DCAFF - #42474E - - #840099 - #005AE1 - - 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 3b0db81e18..02587fd8b1 100644 --- a/src/android/app/src/main/res/values-pl/strings.xml +++ b/src/android/app/src/main/res/values-pl/strings.xml @@ -1,14 +1,14 @@ - To oprogramowanie umożliwia uruchomienie gier z konsoli Nintendo Switch. Nie zawiera gier ani wymaganych kluczy.<br /><br />Zanim zaczniesz, wybierz plik kluczy prod.keys ]]> z katalogu w pamięci masowej.<br /><br />Dowiedz się więcej]]> + To oprogramowanie umożliwia uruchomienie gier z konsoli Nintendo Switch. Nie zawiera gier ani wymaganych kluczy.<br /><br />Zanim zaczniesz, wybierz plik kluczy prod.keys ]]> z katalogu w pamięci masowej.<br /><br />Dowiedz się więcej]]> Powiadomienia błędy Pokaż powiadomienie gdy coś pójdzie źle Nie zezwolono na powiadomienia! Witaj! - Zobacz jak skonfigurować <b>yuzu</b> i wskocz w świat emulacji. + Zobacz jak skonfigurować <b>suyu</b> i wskocz w świat emulacji. Zaczynamy Klucze Wybierz swoje klucze <b>prod.keys</b> za pomocą przycisku poniżej. @@ -29,22 +29,22 @@ Nie znaleziono plików, lub nie wybrano jeszcze katalogu zawierającego gry. Szukaj i filtruj gry Wybierz folder z grami - Pozwala yuzu wygenerować listę gier + Pozwala suyu wygenerować listę gier Pominąć wybór folderu z grami? Aby pokazać listę gier wybierz katalog zawierający gry. - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games Szukaj gier Wybrano katalog gier Instaluj klucze prod.keys Wymagane aby poprawnie odczytać sklepowe gry Pominąć dodawanie kluczy? Poprawne klucze są wymagane aby emulować sklepowe gry. Jeśli przejdziesz dalej, jedynie homebrew będą działać. - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction Powiadomienia Nadaj uprawnienia dostępu do powiadomień. Nadaj uprawnienia Pominąć nadanie uprawnień powiadomień? - yuzu nie będzie mógł powiadamiać Cię o ważnych informacjach. + suyu nie będzie mógł powiadamiać Cię o ważnych informacjach. Odmowa dostępu Odmówiłeś dostępu do powiadomień zbyt wiele razy, teraz musisz przyznać je w ustawieniach systemowych Androida. O aplikacji @@ -60,7 +60,7 @@ Upewnij się że twoje klucze mają rozszerzenie .keys i spróbuj ponownie. Upewnij się że twoje klucze mają rozszerzenie .bin i spróbuj ponownie. Niepoprawne klucze - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Wybrany plik jest niepoprawny lub uszkodzony. Zrzuć ponownie swoje klucze. Zainstaluj sterownik GPU Użyj alternatywnych sterowników aby potencjalnie zwiększyć wydajność i naprawić błędy @@ -70,7 +70,7 @@ Ostatnio dodane Sklepowe Homebrew - Otwórz folder yuzu + Otwórz folder suyu Zarządzaj plikami emulatora Personalizuj wygląd aplikacji Nie znaleziono menedżera plików @@ -90,30 +90,30 @@ Zainstalowano pomyślnie Błąd podczas instalacji firmware Udostępnij logi debugowania - Podziel się logami yuzu, pomoże to twórcom w poprawie działania emulatora + Podziel się logami suyu, pomoże to twórcom w poprawie działania emulatora Nie znaleziono plików logów Zainstaluj zawartość gry Zainstaluj aktualizację gry lub dodatek DLC - https://yuzu-emu.org/help/quickstart/#dumping-installed-updates - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-installed-updates + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Gaia isn\'t real Skopiowano do schowka Otwarto-źródłowy emulator konsoli Switch Współtwórcy - Stworzone z \u2764 przez zespół yuzu - https://github.com/yuzu-emu/yuzu/graphs/contributors - Projekty dzięki którym yuzu mógł zostać stworzony + Stworzone z \u2764 przez zespół suyu + https://github.com/suyu-emu/suyu/graphs/contributors + Projekty dzięki którym suyu mógł zostać stworzony Wersja - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu Wczesny dostęp Uzyskaj wczesny dostęp - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea Nowe funkcje, szybszy dostęp do aktualizacji i nie tylko Korzyści z wcześniejszego dostępu Nowatorskie funkcje @@ -255,7 +255,7 @@ Dodatki Twój ROM jest zakodowany - prod.keys jest zainstalowany aby gry mogły zostać odczytane.]]> + prod.keys jest zainstalowany aby gry mogły zostać odczytane.]]> Błąd inicjacji podsystemu graficznego Zazwyczaj spowodowane niekompatybilnym sterownikiem GPU, instalacja niestandardowego sterownika może rozwiązać ten problem. Nie można wczytać pliku ROM 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 40f298c310..3b3bf806b7 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 @@ -1,14 +1,14 @@ - 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 prod.keys ]]> no armazenamento de seu dispositivo.<br /><br />Saiba mais]]> + 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 prod.keys ]]> no armazenamento de seu dispositivo.<br /><br />Saiba mais]]> Notificações e erros Mostra notificações quando algo dá errado. Acesso às notificações não concedido! Bem-vindo! - Aprenda como configurar o <b>yuzu</b> e mergulhe na emulação. + Aprenda como configurar o <b>suyu</b> e mergulhe na emulação. Primeiros passos Keys Selecione seu arquivo <b>prod.keys</b> com o botão abaixo. @@ -32,10 +32,10 @@ Procura e filtra jogos Seleciona a pasta de jogos Gerenciar pastas de jogos - Permite que o Yuzu preencha a lista de jogos + Permite que o Suyu preencha a lista de jogos Ignorar a seleção da pasta de jogos? Os jogos não serão exibidos na lista de jogos se uma pasta não estiver selecionada. - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games Procurar jogos Procurar nas configurações Pasta de jogos selecionada @@ -43,12 +43,12 @@ Necessárias para desencriptar jogos comerciais Ignorar a adição de chaves? São necessárias chaves válidas para emular jogos comerciais. Somente aplicativos homebrew funcionarão se você continuar. - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction Notificações Conceda a permissão de notificação com o botão abaixo. Conceder permissão Ignorar a concessão da permissão de notificação? - O Yuzu não irá te notificar de informações importantes. + O Suyu não irá te notificar de informações importantes. Permissão negada Você negou essa permissão muitas vezes e agora precisa concedê-la manualmente nas configurações do sistema. Sobre @@ -64,7 +64,7 @@ Verifique se seu arquivo de chaves possui a extensão .keys e tente novamente. Verifique se seu arquivo de chaves possui a extensão .bin e tente novamente. Chaves de encriptação inválidas - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys O arquivo selecionado está incorreto ou corrompido. Por favor extraia suas chaves novamente. Gerenciador de driver de GPU Instalar driver para GPU @@ -76,11 +76,11 @@ Adicionado recentemente Jogos comerciais Homebrew - Abrir a pasta do Yuzu - Gerencie os arquivos internos do Yuzu + Abrir a pasta do Suyu + Gerencie os arquivos internos do Suyu Altere a aparência do aplicativo Nenhum gerenciador de arquivos encontrado - Não foi possível abrir a pasta do Yuzu + Não foi possível abrir a pasta do Suyu Por favor localize manualmente a pasta do usuário, com o painel lateral do gerenciador de arquivos. Gerenciar os dados salvos dos jogos Dados salvos encontrados. Por favor selecione uma opção abaixo. @@ -101,7 +101,7 @@ Falha na instalação do firmware Verifique se os arquivos nca do firmware estão na raiz do arquivo zip e tente novamente. Compartilhar registros de depuração - Compartilhe o arquivo de registro do yuzu para obter ajuda com problemas + Compartilhe o arquivo de registro do suyu para obter ajuda com problemas Arquivo de registro não encontrado Instalar conteúdo de jogos Instale atualizações de jogos ou DLC @@ -114,11 +114,11 @@ Conteúdo(s) de jogo instalado(s) com sucesso %1$d instalado com sucesso %1$d substituído com sucesso - https://yuzu-emu.org/help/quickstart/#dumping-installed-updates + https://suyu-emu.org/help/quickstart/#dumping-installed-updates Drivers personalizados não suportados Carregamento de drivers personalizados não suportado para este dispositivo no momento.\nVerifique essa opção novamente no futuro para ver se o suporte foi adicionado! - Administrar dados do yuzu - Importe/exporte firmware, chaves, dados do usuário e mais! + Administrar dados do suyu + Importe/exporte firmware, chaves, dados do usuário e mais! Compartilhar arquivo de dados salvos Erro ao exportar arquivo de dados salvos Pastas de jogos @@ -141,14 +141,14 @@ Verifica todo o conteúdo instalado em busca de dados corrompidos Faltando chaves de encriptação O firmware e jogos comerciais não poderão ser decriptados - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Launcher de miniaplicativos Execute miniaplicativos do sistema usando o firmware instalado Firmware não instalado Miniaplicativo não disponível - prod.keys e o firmware estão instalados e tente novamente.]]> + prod.keys e o firmware estão instalados e tente novamente.]]> Álbum Visualize imagens armazenadas na pasta de capturas de telas do usuário com o visualizador de imagens do sistema Editor de Mii @@ -166,28 +166,28 @@ Copiado para a área de transferência Um emulador de Switch de código aberto Colaboradores - Feito com \u2764 da equipe do Yuzu - https://github.com/yuzu-emu/yuzu/graphs/contributors - Projetos que tornam o yuzu para Android possível + Feito com \u2764 da equipe do Suyu + https://github.com/suyu-emu/suyu/graphs/contributors + Projetos que tornam o suyu para Android possível Versão da Compilação Dados do usuário Importe/exporte todos os dados do aplicativo.\n\nAo importar dados de usuário, todos os dados existentes serão excluídos! Exportando dados do usuário... Importando dados do usuário... Importar dados do usuário - Backup do yuzu inválido + Backup do suyu inválido Dados de usuário exportados com sucesso Dados de usuário importados com sucesso Exportação cancelada Verifique se as pastas de dados do usuário estão na raiz da pasta zip, se possuem um arquivo de configuração em config/config.ini e tente novamente. - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu Acesso Antecipado Obter Acesso Antecipado - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea Recursos de ponta, acesso antecipado a atualizações e muito mais Benefícios do Acesso Antecipado Recursos de ponta @@ -461,8 +461,8 @@ uma tentativa de mapeamento automático Sua ROM está encriptada - cartuchos de jogos ou títulos instalados.]]> - prod.keys está instalado para que os jogos possam ser decriptados.]]> + cartuchos de jogos ou títulos instalados.]]> + prod.keys está instalado para que os jogos possam ser decriptados.]]> Ocorreu um erro ao iniciar o núcleo de vídeo. Isto é normalmente causado por um driver de GPU incompatível. Instalar um driver de GPU personalizado pode resolver este problema. Impossível carregar a ROM 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 83ac361fec..75ca1330cc 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 @@ -8,7 +8,7 @@ Benvindo! - Aprende como configurar <b>yuzu</b> e arranca a emulação. + Aprende como configurar <b>suyu</b> e arranca a emulação. Começa Chaves Seleciona o teu ficheiro <b>prod.keys</b> com o botão abaixo. @@ -32,10 +32,10 @@ Procura e filtra jogos. Seleciona a pasta de jogos. Gerencie as pastas de jogos - Permite que o Yuzu preencha a lista de jogos + Permite que o Suyu preencha a lista de jogos Ignorar a seleção da pasta de jogos? Os jogos não serão exibidos na lista de jogos se uma pasta não estiver selecionada. - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games Procurar jogos Procurar nas definições Pasta de Jogos selecionada @@ -43,12 +43,12 @@ Necessário para desencriptar jogos comerciais Ignorar a adição de chaves? São necessárias chaves válidas para emular jogos comerciais. Somente aplicativos homebrew funcionarão se você continuar. - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction Notificações Conceda a permissão de notificação com o botão abaixo. Conceda permissão Saltar a concessão da permissão de notificação? - Yuzu não conseguirá te notificar de informações importantes. + Suyu não conseguirá te notificar de informações importantes. Permissão negada Você negou essa permissão muitas vezes e agora precisa concedê-la manualmente nas configurações do sistema. Sobre @@ -64,7 +64,7 @@ Verifique se seu arquivo keys possui a extensão .keys e tente novamente. Verifique se seu arquivo keys possui a extensão .bin e tente novamente. Chaves de encriptação inválidas - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys O ficheiro selecionado está corrompido. Por favor recarrega as tuas chaves. Gerenciador de driver de GPU Instala driver para GPU @@ -76,11 +76,11 @@ Adicionado recentemente Jogos comerciais Homebrew - Abre a pasta Yuzu - Gere os ficheiro internos do Yuzu + Abre a pasta Suyu + Gere os ficheiro internos do Suyu Modifica a aparência da App Nenhum gestor de ficheiros encontrado - Impossível abrir pasta Yuzu + Impossível abrir pasta Suyu Localiza a pasta de utilizador manualmente com o painel lateral do gestor de ficheiros. Gerir dados guardados Dados não encontrados. Por favor seleciona uma opção abaixo. @@ -101,7 +101,7 @@ Falha na instalação do firmware Cofirma que os ficheiros firmware nca estão no root do finheiro zip e tenta de novo. Compartilhe registros de debug. - Compartilhe o arquivo de registro do yuzu para obter ajuda com problemas + Compartilhe o arquivo de registro do suyu para obter ajuda com problemas Arquivo de registro não encontrado Instalar conteúdo adicional Instale atualizações de jogos ou DLC @@ -114,11 +114,11 @@ Conteúdo(s) de jogo instalados com sucesso %1$d instalado com sucesso %1$d substituída com êxito - https://yuzu-emu.org/help/quickstart/#dumping-installed-updates + https://suyu-emu.org/help/quickstart/#dumping-installed-updates Drivers personalizados não suportados Carrea«gamento de drivers personalizados não é suportado pr este dispositivo. \nCheck verifica esta opção de futuro para confirmar se o suporte foi adicionado! - Administrar dados yuzu - Importa/exporta firmware, chaves, dados do usuário e mais! + Administrar dados suyu + Importa/exporta firmware, chaves, dados do usuário e mais! Partilha ficheiro duardado Erro ao exportar dados guardados Pastas de jogos @@ -141,7 +141,7 @@ Verifica todo o conteúdo instalado em busca de dados corrompidos Faltando chaves de encriptação O firmware e jogos comerciais não poderão ser decriptados - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Launcher de miniaplicativos @@ -166,28 +166,28 @@ Copiado para a área de transferência Um emulador Switch de código aberto Contribuidores - Feito com \u2764 da equipa do Yuzu - https://github.com/yuzu-emu/yuzu/graphs/contributors - Projetos que tornam o yuzu para Android possível + Feito com \u2764 da equipa do Suyu + https://github.com/suyu-emu/suyu/graphs/contributors + Projetos que tornam o suyu para Android possível Versão Dado de utilizados Importar/exportar todos dados da aplicação data.\n\n Ao importar dados do utilizados, todos os dados existentes do utilizados serão excluídos! A exportar dados de utilizados... A importar dados de utilizador... Importar dados de utilizados... - Backup yuzu inválido + Backup suyu inválido Dados de utilizados exportados com sucesso Dados de utilizador importado com sucesso Exportação cancelada Verifiqua se as pastas de dados do utilizados estão na raiz da pasta zip e contêm um arquivo de configuração em config/config.ini e tenta novamente. - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu Acesso antecipado Obtém Acesso Antecipado - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea Recursos de ponta, acesso antecipado a atualizações e muito mais Benefícios do Acesso Antecipado Recursos de ponta @@ -461,8 +461,8 @@ uma tentativa de mapeamento automático A tua ROM está encriptada - cartucho de jogo or títulos instalados.]]> - prod.keys está instalado para que os jogos possam ser desencriptados.]]> + cartucho de jogo or títulos instalados.]]> + prod.keys está instalado para que os jogos possam ser desencriptados.]]> Ocorreu um erro ao iniciar o núcleo de vídeo. Isto é normalmente causado por um driver de GPU incompatível. Instalar um driver GPU pode resolver este problema. Impossível carregar a tua ROM 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 6a5984cf84..0190726def 100644 --- a/src/android/app/src/main/res/values-ru/strings.xml +++ b/src/android/app/src/main/res/values-ru/strings.xml @@ -1,14 +1,14 @@ - Это программное обеспечение позволяет запускать игры для игровой консоли Nintendo Switch. Мы не предоставляем сами игры или ключи.<br /><br />Перед началом работы найдите файл prod.keys ]]> в хранилище устройства..<br /><br />Узнать больше]]> + Это программное обеспечение позволяет запускать игры для игровой консоли Nintendo Switch. Мы не предоставляем сами игры или ключи.<br /><br />Перед началом работы найдите файл prod.keys ]]> в хранилище устройства..<br /><br />Узнать больше]]> Уведомления и ошибки Показывать уведомления, когда что-то пошло не так Вы не предоставили разрешение на уведомления! Добро пожаловать! - Узнайте, как настроить <b>yuzu</b> и перейти прямиком к эмуляции. + Узнайте, как настроить <b>suyu</b> и перейти прямиком к эмуляции. Начать Ключи Выберите ваш файл <b>prod.keys</b> с помощью кнопки ниже. @@ -32,10 +32,10 @@ Поиск и фильтрация игр Выберите папку с играми Управление папками - Позволяет yuzu заполнить список игр + Позволяет suyu заполнить список игр Пропустить выбор папки с играми? Игры не будут отображаться в списке Игры, если папка не выбрана. - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games Найти игры Настройки поиска Выбрана папка с играми @@ -43,12 +43,12 @@ Требуется для расшифровки розничных игр Пропустить добавление ключей? Для эмуляции розничных игр требуются действительные ключи. Если вы продолжите, будут работать только homebrew приложения. - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction Уведомления Предоставьте разрешение уведомлений с помощью кнопки ниже. Предоставить разрешение Пропустить предоставление разрешения уведомлений? - yuzu не сможет уведомлять вас о важной информации. + suyu не сможет уведомлять вас о важной информации. Разрешение отказано Вы слишком часто отклоняли это разрешение, и теперь вам нужно будет вручную предоставить его в настройках системы. О нас @@ -64,7 +64,7 @@ Убедитесь, что файл ключей имеет расширение .keys, и повторите попытку. Убедитесь, что файл ключей имеет расширение .bin, и повторите попытку. Неверные ключи шифрования - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Выбранный файл неверен или поврежден. Пожалуйста, пере-дампите ваши ключи. Менеджер драйверов ГП Установить драйвер ГП @@ -76,11 +76,11 @@ Недавно добавлено Розничные Homebrew - Открыть папку yuzu - Управление внутренними файлами yuzu + Открыть папку suyu + Управление внутренними файлами suyu Изменение внешнего вида приложения Не найден файловый менеджер - Не удалось открыть папку yuzu + Не удалось открыть папку suyu Пожалуйста, найдите папку пользователя с помощью боковой панели файлового менеджера вручную. Управление данными сохранений Найдено данные сохранений. Пожалуйста, выберите вариант ниже. @@ -101,7 +101,7 @@ Не удалось установить прошивку Убедитесь что файлы прошивки nca находятся в корне zip-архива и повторите попытку. Поделиться журналом отладки - Поделиться журналом отладки yuzu для устранения проблем + Поделиться журналом отладки suyu для устранения проблем Файл журнала не найден Установить игровой контент Установить обновления игры или дополнений @@ -114,12 +114,12 @@ Игровой контент успешно установлен %1$d Успешно установлено %1$d Успешно перезаписано - https://yuzu-emu.org/help/quickstart/#dumping-installed-updates + https://suyu-emu.org/help/quickstart/#dumping-installed-updates Пользовательские драйверы не поддерживаются Загрузка пользовательского драйвера в настоящее время не поддерживается для этого устройства.\nПроверьте этот параметр еще раз в будущем чтобы узнать была ли добавлена ​​поддержка!   - Управление данными yuzu - Импортируйте/экспортируйте прошивку, ключи, пользовательские данные и многое другое! + Управление данными suyu + Импортируйте/экспортируйте прошивку, ключи, пользовательские данные и многое другое! Поделиться файлом сохранения Не удалось экспортировать сохранение Папки с играми @@ -144,14 +144,14 @@ Проверяет весь установленный контент на наличие повреждений Отсутствуют ключи шифрования Прошивка и розничные игры не могут быть расшифрованы - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Запуск апплета Запуск системных апплетов на установленной прошивке Прошивка не установлена Апплет недоступен - prod.keys и firmware установлены и попробуйте еще раз.]]> + prod.keys и firmware установлены и попробуйте еще раз.]]> Альбом Просмотрите изображения, сохраненные в папке скриншотов пользователя, с помощью системного просмотрщика фотографий. Mii редактор @@ -169,28 +169,28 @@ Скопировано в буфер обмена Эмулятор Switch с открытым исходным кодом Контрибьюторы - Сделано с \u2764 от команды yuzu - https://github.com/yuzu-emu/yuzu/graphs/contributors - Проекты, которые сделали yuzu для Android возможным + Сделано с \u2764 от команды suyu + https://github.com/suyu-emu/suyu/graphs/contributors + Проекты, которые сделали suyu для Android возможным Сборка Данные пользователя Импортируйте/экспортируйте все данные приложения.\n\nПри импорте пользовательских данных все существующие пользовательские данные будут удалены! Экспорт пользовательских данных… Импорт пользовательских данных… Импортировать пользовательские данные - Неверная резервная копия yuzu + Неверная резервная копия suyu Пользовательские данные успешно экспортированы Пользовательские данные успешно импортированы Экспорт отменен Убедитесь что папки пользовательских данных находятся в корне zip-папки и содержат файл конфигурации config/config.ini и повторите попытку. - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu Ранний доступ Получить ранний доступ - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea Новейшие возможности, ранний доступ к обновлениям и другое Преимущества раннего доступа Новейшие возможности @@ -463,8 +463,8 @@ Ваш ROM зашифрованный - или установленные игры.]]> - prod.keys установлен, чтобы игры можно было расшифровать.]]> + или установленные игры.]]> + prod.keys установлен, чтобы игры можно было расшифровать.]]> Произошла ошибка при инициализации видеоядра. Обычно это вызвано несовместимым драйвером ГП. Установка пользовательского драйвера ГП может решить эту проблему. Не удалось запустить ROM 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 323087b2d6..4b212d8bc0 100644 --- a/src/android/app/src/main/res/values-uk/strings.xml +++ b/src/android/app/src/main/res/values-uk/strings.xml @@ -1,14 +1,14 @@ - Це програмне забезпечення дозволяє запускати ігри для ігрової консолі Nintendo Switch. Ми не надаємо самі ігри або ключі.<br /><br />Перед початком роботи знайдіть ваш файл prod.keys ]]> у сховищі пристрою.<br /><br />Дізнатися більше]]> + Це програмне забезпечення дозволяє запускати ігри для ігрової консолі Nintendo Switch. Ми не надаємо самі ігри або ключі.<br /><br />Перед початком роботи знайдіть ваш файл prod.keys ]]> у сховищі пристрою.<br /><br />Дізнатися більше]]> Сповіщення та помилки Показувати сповіщення, коли щось пішло не так Ви не надали дозвіл сповіщень! Вітаємо! - Дізнайтеся, як налаштувати <b>yuzu</b> та перейти до емуляції. + Дізнайтеся, як налаштувати <b>suyu</b> та перейти до емуляції. Розпочати Ключі Виберіть ваш файл <b>prod.keys</b> за допомогою кнопки нижче. @@ -29,22 +29,22 @@ Не знайдено файлів або ще не вибрано папку з іграми. Пошук та фільтрація ігор Виберіть папку з іграми - Дозволяє yuzu заповнити список ігор + Дозволяє suyu заповнити список ігор Пропустити вибір папки з іграми? Ігри не відображатимуться у списку Ігри, якщо папку не вибрано. - https://yuzu-emu.org/help/quickstart/#dumping-games + https://suyu-emu.org/help/quickstart/#dumping-games Знайти ігри Вибрано папку з іграми Встановити prod.keys Потрібно для розшифровки роздрібних ігор Пропустити додавання ключів? Для емуляції роздрібних ігор потрібні дійсні ключі. Якщо ви продовжите, працюватимуть тільки homebrew додатки. - https://yuzu-emu.org/help/quickstart/#guide-introduction + https://suyu-emu.org/help/quickstart/#guide-introduction Сповіщення Надайте дозвіл сповіщень за допомогою кнопки нижче. Надати дозвіл Пропустити надання дозволу сповіщень? - yuzu не зможе повідомляти вас про важливу інформацію. + suyu не зможе повідомляти вас про важливу інформацію. У дозволі відмовлено Ви занадто часто відхиляли цей дозвіл, тож тепер вам потрібно буде вручну надати його в системних налаштуваннях. Про нас @@ -59,7 +59,7 @@ Помилка під час зчитування ключів шифрування Переконайтеся, що файл ключів має розширення .keys, і повторіть спробу. Невірні ключі шифрування - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Обраний файл невірний або пошкоджений. Будь ласка, пере-дампіть ваші ключі. Встановити драйвер ГП Встановіть альтернативні драйвери для потенційно кращої продуктивності та/або точності @@ -67,11 +67,11 @@ Налаштування параметрів емулятора Роздрібні Homebrew - Відкрити папку yuzu - Керування внутрішніми файлами yuzu + Відкрити папку suyu + Керування внутрішніми файлами suyu Змінити зовнішній вигляд застосунку Не знайдено файлового менеджера - Не вдалося відкрити папку yuzu + Не вдалося відкрити папку suyu Будь ласка, знайдіть папку користувача за допомогою бічної панелі файлового менеджера вручну. Керування даними збережень Знайдено дані збережень. Будь ласка, виберіть варіант нижче. @@ -81,24 +81,24 @@ Назва першої вкладеної папки має бути ідентифікатором гри. Імпорт Експорт - https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys + https://suyu-emu.org/help/quickstart/#dumping-decryption-keys Gaia не існує Скопійовано в буфер обміну Емулятор Switch із відкритим першокодом Вкладники - Зроблено з \u2764 від команди yuzu - https://github.com/yuzu-emu/yuzu/graphs/contributors + Зроблено з \u2764 від команди suyu + https://github.com/suyu-emu/suyu/graphs/contributors Збірка - https://discord.gg/u77vRWY - https://yuzu-emu.org/ - https://github.com/yuzu-emu + https://discord.gg/suyu + https://suyu-emu.org/ + https://github.com/suyu-emu Ранній доступ Отримати ранній доступ - https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea + https://play.google.com/store/apps/details?id=org.suyu.suyu_emu.ea Новітні можливості, ранній доступ до оновлень та інше Переваги раннього доступу Новітні можливості @@ -214,7 +214,7 @@ Доповнення Ваш ROM зашифрований - prod.keys встановлено, щоб ігри можна було розшифрувати.]]> + prod.keys встановлено, щоб ігри можна було розшифрувати.]]> Сталася помилка під час ініціалізації відеоядра. Зазвичай це спричинено несумісним драйвером ГП. Встановлення користувацького драйвера ГП може вирішити цю проблему. Не вдалося запустити ROM diff --git a/src/android/app/src/main/res/values-v31/themes.xml b/src/android/app/src/main/res/values-v31/themes.xml index 5d3a86bf68..0ea776605d 100644 --- a/src/android/app/src/main/res/values-v31/themes.xml +++ b/src/android/app/src/main/res/values-v31/themes.xml @@ -1,7 +1,7 @@ - - - - diff --git a/src/android/app/src/main/res/values/suyu_colors.xml b/src/android/app/src/main/res/values/suyu_colors.xml new file mode 100644 index 0000000000..4e56ee1ef7 --- /dev/null +++ b/src/android/app/src/main/res/values/suyu_colors.xml @@ -0,0 +1,37 @@ + + + + #990E00 + #FFFFFF + #EEDEDD + #400200 + #775650 + #FFFFFF + #FFDAD4 + #2C1511 + #6F5C2E + #FFFFFF + #FAE0A6 + #251A00 + #BA1A1A + #FFDAD6 + #FFFFFF + #410002 + #FFFBFF + #201A19 + #FFFBFF + #201A19 + #F5DDD9 + #534340 + #857370 + #FBEEEB + #362F2D + #FFB4A6 + #000000 + #B52612 + #D8C2BE + + #99FFE1 + #76C5FF + + diff --git a/src/android/app/src/main/res/values/themes.xml b/src/android/app/src/main/res/values/themes.xml index 60388b71e2..d181dfa40e 100644 --- a/src/android/app/src/main/res/values/themes.xml +++ b/src/android/app/src/main/res/values/themes.xml @@ -1,46 +1,46 @@ - -