mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-22 23:02:47 +01:00
Merge branch 'dev' into kern18-changes
This commit is contained in:
commit
416497216c
223 changed files with 1336 additions and 1265 deletions
|
@ -37,7 +37,7 @@ fi
|
||||||
|
|
||||||
# Don't let AppImageLauncher ask to integrate EA
|
# Don't let AppImageLauncher ask to integrate EA
|
||||||
if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then
|
if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then
|
||||||
echo "X-AppImage-Integrate=false" >> AppDir/org.suyu_emu.suyu.desktop
|
echo "X-AppImage-Integrate=false" >> AppDir/dev.suyu_emu.suyu.desktop
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${RELEASE_NAME}" = "mainline" ]; then
|
if [ "${RELEASE_NAME}" = "mainline" ]; then
|
||||||
|
|
|
@ -732,14 +732,14 @@ endif()
|
||||||
# https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html
|
# https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html
|
||||||
# https://www.freedesktop.org/software/appstream/docs/
|
# https://www.freedesktop.org/software/appstream/docs/
|
||||||
if(ENABLE_QT AND UNIX AND NOT APPLE)
|
if(ENABLE_QT AND UNIX AND NOT APPLE)
|
||||||
install(FILES "dist/org.suyu_emu.suyu.desktop"
|
install(FILES "dist/dev.suyu_emu.suyu.desktop"
|
||||||
DESTINATION "share/applications")
|
DESTINATION "share/applications")
|
||||||
install(FILES "dist/suyu.svg"
|
install(FILES "dist/suyu.svg"
|
||||||
DESTINATION "share/icons/hicolor/scalable/apps"
|
DESTINATION "share/icons/hicolor/scalable/apps"
|
||||||
RENAME "org.suyu_emu.suyu.svg")
|
RENAME "dev.suyu_emu.suyu.svg")
|
||||||
install(FILES "dist/org.suyu_emu.suyu.xml"
|
install(FILES "dist/dev.suyu_emu.suyu.xml"
|
||||||
DESTINATION "share/mime/packages")
|
DESTINATION "share/mime/packages")
|
||||||
install(FILES "dist/org.suyu_emu.suyu.metainfo.xml"
|
install(FILES "dist/dev.suyu_emu.suyu.metainfo.xml"
|
||||||
DESTINATION "share/metainfo")
|
DESTINATION "share/metainfo")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ Type=Application
|
||||||
Name=suyu
|
Name=suyu
|
||||||
GenericName=Switch Emulator
|
GenericName=Switch Emulator
|
||||||
Comment=Nintendo Switch video game console emulator
|
Comment=Nintendo Switch video game console emulator
|
||||||
Icon=org.suyu_emu.suyu
|
Icon=dev.suyu_emu.suyu
|
||||||
TryExec=suyu
|
TryExec=suyu
|
||||||
Exec=suyu %f
|
Exec=suyu %f
|
||||||
Categories=Game;Emulator;Qt;
|
Categories=Game;Emulator;Qt;
|
|
@ -7,7 +7,7 @@ SPDX-License-Identifier: CC0-1.0
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<component type="desktop-application">
|
<component type="desktop-application">
|
||||||
<id>org.suyu_emu.suyu</id>
|
<id>dev.suyu_emu.suyu</id>
|
||||||
<metadata_license>CC0-1.0</metadata_license>
|
<metadata_license>CC0-1.0</metadata_license>
|
||||||
<name>suyu</name>
|
<name>suyu</name>
|
||||||
<summary>Nintendo Switch emulator</summary>
|
<summary>Nintendo Switch emulator</summary>
|
||||||
|
@ -34,7 +34,7 @@ SPDX-License-Identifier: CC0-1.0
|
||||||
<url type="contact">https://community.citra-emu.org/</url>
|
<url type="contact">https://community.citra-emu.org/</url>
|
||||||
<url type="vcs-browser">https://gitlab.com/suyu-emu/suyu</url>
|
<url type="vcs-browser">https://gitlab.com/suyu-emu/suyu</url>
|
||||||
<url type="contribute">https://suyu-emu.org/wiki/contributing/</url>
|
<url type="contribute">https://suyu-emu.org/wiki/contributing/</url>
|
||||||
<launchable type="desktop-id">org.suyu_emu.suyu.desktop</launchable>
|
<launchable type="desktop-id">dev.suyu_emu.suyu.desktop</launchable>
|
||||||
<provides>
|
<provides>
|
||||||
<binary>suyu</binary>
|
<binary>suyu</binary>
|
||||||
<binary>suyu-cmd</binary>
|
<binary>suyu-cmd</binary>
|
|
@ -10,7 +10,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
<mime-type type="application/x-nx-nro">
|
<mime-type type="application/x-nx-nro">
|
||||||
<comment>Nintendo Switch homebrew executable</comment>
|
<comment>Nintendo Switch homebrew executable</comment>
|
||||||
<acronym>NRO</acronym>
|
<acronym>NRO</acronym>
|
||||||
<icon name="org.suyu_emu.suyu"/>
|
<icon name="dev.suyu_emu.suyu"/>
|
||||||
<glob pattern="*.nro"/>
|
<glob pattern="*.nro"/>
|
||||||
<magic><match value="NRO" type="string" offset="16"/></magic>
|
<magic><match value="NRO" type="string" offset="16"/></magic>
|
||||||
</mime-type>
|
</mime-type>
|
||||||
|
@ -18,7 +18,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
<mime-type type="application/x-nx-nso">
|
<mime-type type="application/x-nx-nso">
|
||||||
<comment>Nintendo Switch homebrew executable</comment>
|
<comment>Nintendo Switch homebrew executable</comment>
|
||||||
<acronym>NSO</acronym>
|
<acronym>NSO</acronym>
|
||||||
<icon name="org.suyu_emu.suyu"/>
|
<icon name="dev.suyu_emu.suyu"/>
|
||||||
<glob pattern="*.nso"/>
|
<glob pattern="*.nso"/>
|
||||||
<magic><match value="NSO" type="string" offset="0"/></magic>
|
<magic><match value="NSO" type="string" offset="0"/></magic>
|
||||||
</mime-type>
|
</mime-type>
|
||||||
|
@ -26,7 +26,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
<mime-type type="application/x-nx-nsp">
|
<mime-type type="application/x-nx-nsp">
|
||||||
<comment>Nintendo Switch Package</comment>
|
<comment>Nintendo Switch Package</comment>
|
||||||
<acronym>NSP</acronym>
|
<acronym>NSP</acronym>
|
||||||
<icon name="org.suyu_emu.suyu"/>
|
<icon name="dev.suyu_emu.suyu"/>
|
||||||
<glob pattern="*.nsp"/>
|
<glob pattern="*.nsp"/>
|
||||||
<magic><match value="PFS" type="string" offset="0"/></magic>
|
<magic><match value="PFS" type="string" offset="0"/></magic>
|
||||||
</mime-type>
|
</mime-type>
|
||||||
|
@ -34,7 +34,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
<mime-type type="application/x-nx-xci">
|
<mime-type type="application/x-nx-xci">
|
||||||
<comment>Nintendo Switch Card Image</comment>
|
<comment>Nintendo Switch Card Image</comment>
|
||||||
<acronym>XCI</acronym>
|
<acronym>XCI</acronym>
|
||||||
<icon name="org.suyu_emu.suyu"/>
|
<icon name="dev.suyu_emu.suyu"/>
|
||||||
<glob pattern="*.xci"/>
|
<glob pattern="*.xci"/>
|
||||||
</mime-type>
|
</mime-type>
|
||||||
</mime-info>
|
</mime-info>
|
|
@ -25,7 +25,7 @@ val autoVersion = (((System.currentTimeMillis() / 1000) - 1451606400) / 10).toIn
|
||||||
|
|
||||||
@Suppress("UnstableApiUsage")
|
@Suppress("UnstableApiUsage")
|
||||||
android {
|
android {
|
||||||
namespace = "org.suyu.suyu_emu"
|
namespace = "dev.suyu.suyu_emu"
|
||||||
|
|
||||||
compileSdkVersion = "android-34"
|
compileSdkVersion = "android-34"
|
||||||
ndkVersion = "26.1.10909125"
|
ndkVersion = "26.1.10909125"
|
||||||
|
@ -54,7 +54,7 @@ android {
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
// TODO If this is ever modified, change application_id in strings.xml
|
// TODO If this is ever modified, change application_id in strings.xml
|
||||||
applicationId = "org.suyu.suyu_emu"
|
applicationId = "dev.suyu.suyu_emu"
|
||||||
minSdk = 30
|
minSdk = 30
|
||||||
targetSdk = 34
|
targetSdk = 34
|
||||||
versionName = getGitVersion()
|
versionName = getGitVersion()
|
||||||
|
|
|
@ -17,7 +17,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
<uses-permission android:name="android.permission.VIBRATE" />
|
<uses-permission android:name="android.permission.VIBRATE" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:name="org.suyu.suyu_emu.SuyuApplication"
|
android:name="dev.suyu.suyu_emu.SuyuApplication"
|
||||||
android:label="@string/app_name_suffixed"
|
android:label="@string/app_name_suffixed"
|
||||||
android:icon="@drawable/ic_launcher"
|
android:icon="@drawable/ic_launcher"
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
|
@ -34,7 +34,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
android:resource="@xml/game_mode_config" />
|
android:resource="@xml/game_mode_config" />
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name="org.suyu.suyu_emu.ui.main.MainActivity"
|
android:name="dev.suyu.suyu_emu.ui.main.MainActivity"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:theme="@style/Theme.Suyu.Splash.Main">
|
android:theme="@style/Theme.Suyu.Splash.Main">
|
||||||
|
|
||||||
|
@ -48,12 +48,12 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name="org.suyu.suyu_emu.features.settings.ui.SettingsActivity"
|
android:name="dev.suyu.suyu_emu.features.settings.ui.SettingsActivity"
|
||||||
android:theme="@style/Theme.Suyu.Main"
|
android:theme="@style/Theme.Suyu.Main"
|
||||||
android:label="@string/preferences_settings"/>
|
android:label="@string/preferences_settings"/>
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name="org.suyu.suyu_emu.activities.EmulationActivity"
|
android:name="dev.suyu.suyu_emu.activities.EmulationActivity"
|
||||||
android:theme="@style/Theme.Suyu.Main"
|
android:theme="@style/Theme.Suyu.Main"
|
||||||
android:launchMode="singleTop"
|
android:launchMode="singleTop"
|
||||||
android:supportsPictureInPicture="true"
|
android:supportsPictureInPicture="true"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu
|
package dev.suyu.suyu_emu
|
||||||
|
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
|
@ -13,14 +13,14 @@ import android.widget.TextView
|
||||||
import androidx.annotation.Keep
|
import androidx.annotation.Keep
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import java.lang.ref.WeakReference
|
import java.lang.ref.WeakReference
|
||||||
import org.suyu.suyu_emu.activities.EmulationActivity
|
import dev.suyu.suyu_emu.activities.EmulationActivity
|
||||||
import org.suyu.suyu_emu.fragments.CoreErrorDialogFragment
|
import dev.suyu.suyu_emu.fragments.CoreErrorDialogFragment
|
||||||
import org.suyu.suyu_emu.utils.DocumentsTree
|
import dev.suyu.suyu_emu.utils.DocumentsTree
|
||||||
import org.suyu.suyu_emu.utils.FileUtil
|
import dev.suyu.suyu_emu.utils.FileUtil
|
||||||
import org.suyu.suyu_emu.utils.Log
|
import dev.suyu.suyu_emu.utils.Log
|
||||||
import org.suyu.suyu_emu.model.InstallResult
|
import dev.suyu.suyu_emu.model.InstallResult
|
||||||
import org.suyu.suyu_emu.model.Patch
|
import dev.suyu.suyu_emu.model.Patch
|
||||||
import org.suyu.suyu_emu.model.GameVerificationResult
|
import dev.suyu.suyu_emu.model.GameVerificationResult
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class which contains methods that interact
|
* Class which contains methods that interact
|
|
@ -1,18 +1,18 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu
|
package dev.suyu.suyu_emu
|
||||||
|
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import android.app.NotificationChannel
|
import android.app.NotificationChannel
|
||||||
import android.app.NotificationManager
|
import android.app.NotificationManager
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import org.suyu.suyu_emu.features.input.NativeInput
|
import dev.suyu.suyu_emu.features.input.NativeInput
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import org.suyu.suyu_emu.utils.DirectoryInitialization
|
import dev.suyu.suyu_emu.utils.DirectoryInitialization
|
||||||
import org.suyu.suyu_emu.utils.DocumentsTree
|
import dev.suyu.suyu_emu.utils.DocumentsTree
|
||||||
import org.suyu.suyu_emu.utils.GpuDriverHelper
|
import dev.suyu.suyu_emu.utils.GpuDriverHelper
|
||||||
import org.suyu.suyu_emu.utils.Log
|
import dev.suyu.suyu_emu.utils.Log
|
||||||
|
|
||||||
fun Context.getPublicFilesDir(): File = getExternalFilesDir(null) ?: filesDir
|
fun Context.getPublicFilesDir(): File = getExternalFilesDir(null) ?: filesDir
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.activities
|
package dev.suyu.suyu_emu.activities
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.app.PendingIntent
|
import android.app.PendingIntent
|
||||||
|
@ -35,23 +35,23 @@ import androidx.core.view.WindowInsetsCompat
|
||||||
import androidx.core.view.WindowInsetsControllerCompat
|
import androidx.core.view.WindowInsetsControllerCompat
|
||||||
import androidx.navigation.fragment.NavHostFragment
|
import androidx.navigation.fragment.NavHostFragment
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import org.suyu.suyu_emu.NativeLibrary
|
import dev.suyu.suyu_emu.NativeLibrary
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.SuyuApplication
|
import dev.suyu.suyu_emu.SuyuApplication
|
||||||
import org.suyu.suyu_emu.databinding.ActivityEmulationBinding
|
import dev.suyu.suyu_emu.databinding.ActivityEmulationBinding
|
||||||
import org.suyu.suyu_emu.features.input.NativeInput
|
import dev.suyu.suyu_emu.features.input.NativeInput
|
||||||
import org.suyu.suyu_emu.features.settings.model.BooleanSetting
|
import dev.suyu.suyu_emu.features.settings.model.BooleanSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.IntSetting
|
import dev.suyu.suyu_emu.features.settings.model.IntSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.Settings
|
import dev.suyu.suyu_emu.features.settings.model.Settings
|
||||||
import org.suyu.suyu_emu.model.EmulationViewModel
|
import dev.suyu.suyu_emu.model.EmulationViewModel
|
||||||
import org.suyu.suyu_emu.model.Game
|
import dev.suyu.suyu_emu.model.Game
|
||||||
import org.suyu.suyu_emu.utils.InputHandler
|
import dev.suyu.suyu_emu.utils.InputHandler
|
||||||
import org.suyu.suyu_emu.utils.Log
|
import dev.suyu.suyu_emu.utils.Log
|
||||||
import org.suyu.suyu_emu.utils.MemoryUtil
|
import dev.suyu.suyu_emu.utils.MemoryUtil
|
||||||
import org.suyu.suyu_emu.utils.NativeConfig
|
import dev.suyu.suyu_emu.utils.NativeConfig
|
||||||
import org.suyu.suyu_emu.utils.NfcReader
|
import dev.suyu.suyu_emu.utils.NfcReader
|
||||||
import org.suyu.suyu_emu.utils.ParamPackage
|
import dev.suyu.suyu_emu.utils.ParamPackage
|
||||||
import org.suyu.suyu_emu.utils.ThemeHelper
|
import dev.suyu.suyu_emu.utils.ThemeHelper
|
||||||
import java.text.NumberFormat
|
import java.text.NumberFormat
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.adapters
|
package dev.suyu.suyu_emu.adapters
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import androidx.recyclerview.widget.AsyncDifferConfig
|
import androidx.recyclerview.widget.AsyncDifferConfig
|
||||||
import androidx.recyclerview.widget.DiffUtil
|
import androidx.recyclerview.widget.DiffUtil
|
||||||
import androidx.recyclerview.widget.ListAdapter
|
import androidx.recyclerview.widget.ListAdapter
|
||||||
import org.suyu.suyu_emu.viewholder.AbstractViewHolder
|
import dev.suyu.suyu_emu.viewholder.AbstractViewHolder
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
|
||||||
/**
|
/**
|
|
@ -2,11 +2,11 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.adapters
|
package dev.suyu.suyu_emu.adapters
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import org.suyu.suyu_emu.viewholder.AbstractViewHolder
|
import dev.suyu.suyu_emu.viewholder.AbstractViewHolder
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generic list class meant to take care of basic lists
|
* Generic list class meant to take care of basic lists
|
|
@ -2,10 +2,10 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.adapters
|
package dev.suyu.suyu_emu.adapters
|
||||||
|
|
||||||
import org.suyu.suyu_emu.model.SelectableItem
|
import dev.suyu.suyu_emu.model.SelectableItem
|
||||||
import org.suyu.suyu_emu.viewholder.AbstractViewHolder
|
import dev.suyu.suyu_emu.viewholder.AbstractViewHolder
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generic list class meant to take care of single selection UI updates
|
* Generic list class meant to take care of single selection UI updates
|
|
@ -1,14 +1,14 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.adapters
|
package dev.suyu.suyu_emu.adapters
|
||||||
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import org.suyu.suyu_emu.databinding.ListItemAddonBinding
|
import dev.suyu.suyu_emu.databinding.ListItemAddonBinding
|
||||||
import org.suyu.suyu_emu.model.Patch
|
import dev.suyu.suyu_emu.model.Patch
|
||||||
import org.suyu.suyu_emu.model.AddonViewModel
|
import dev.suyu.suyu_emu.model.AddonViewModel
|
||||||
import org.suyu.suyu_emu.viewholder.AbstractViewHolder
|
import dev.suyu.suyu_emu.viewholder.AbstractViewHolder
|
||||||
|
|
||||||
class AddonAdapter(val addonViewModel: AddonViewModel) :
|
class AddonAdapter(val addonViewModel: AddonViewModel) :
|
||||||
AbstractDiffAdapter<Patch, AddonAdapter.AddonViewHolder>() {
|
AbstractDiffAdapter<Patch, AddonAdapter.AddonViewHolder>() {
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.adapters
|
package dev.suyu.suyu_emu.adapters
|
||||||
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
@ -9,15 +9,15 @@ import android.widget.Toast
|
||||||
import androidx.core.content.res.ResourcesCompat
|
import androidx.core.content.res.ResourcesCompat
|
||||||
import androidx.fragment.app.FragmentActivity
|
import androidx.fragment.app.FragmentActivity
|
||||||
import androidx.navigation.findNavController
|
import androidx.navigation.findNavController
|
||||||
import org.suyu.suyu_emu.HomeNavigationDirections
|
import dev.suyu.suyu_emu.HomeNavigationDirections
|
||||||
import org.suyu.suyu_emu.NativeLibrary
|
import dev.suyu.suyu_emu.NativeLibrary
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.SuyuApplication
|
import dev.suyu.suyu_emu.SuyuApplication
|
||||||
import org.suyu.suyu_emu.databinding.CardSimpleOutlinedBinding
|
import dev.suyu.suyu_emu.databinding.CardSimpleOutlinedBinding
|
||||||
import org.suyu.suyu_emu.model.Applet
|
import dev.suyu.suyu_emu.model.Applet
|
||||||
import org.suyu.suyu_emu.model.AppletInfo
|
import dev.suyu.suyu_emu.model.AppletInfo
|
||||||
import org.suyu.suyu_emu.model.Game
|
import dev.suyu.suyu_emu.model.Game
|
||||||
import org.suyu.suyu_emu.viewholder.AbstractViewHolder
|
import dev.suyu.suyu_emu.viewholder.AbstractViewHolder
|
||||||
|
|
||||||
class AppletAdapter(val activity: FragmentActivity, applets: List<Applet>) :
|
class AppletAdapter(val activity: FragmentActivity, applets: List<Applet>) :
|
||||||
AbstractListAdapter<Applet, AppletAdapter.AppletViewHolder>(applets) {
|
AbstractListAdapter<Applet, AppletAdapter.AppletViewHolder>(applets) {
|
|
@ -1,23 +1,23 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.adapters
|
package dev.suyu.suyu_emu.adapters
|
||||||
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.core.content.res.ResourcesCompat
|
import androidx.core.content.res.ResourcesCompat
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import org.suyu.suyu_emu.HomeNavigationDirections
|
import dev.suyu.suyu_emu.HomeNavigationDirections
|
||||||
import org.suyu.suyu_emu.NativeLibrary
|
import dev.suyu.suyu_emu.NativeLibrary
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.SuyuApplication
|
import dev.suyu.suyu_emu.SuyuApplication
|
||||||
import org.suyu.suyu_emu.databinding.DialogListItemBinding
|
import dev.suyu.suyu_emu.databinding.DialogListItemBinding
|
||||||
import org.suyu.suyu_emu.model.CabinetMode
|
import dev.suyu.suyu_emu.model.CabinetMode
|
||||||
import org.suyu.suyu_emu.adapters.CabinetLauncherDialogAdapter.CabinetModeViewHolder
|
import dev.suyu.suyu_emu.adapters.CabinetLauncherDialogAdapter.CabinetModeViewHolder
|
||||||
import org.suyu.suyu_emu.model.AppletInfo
|
import dev.suyu.suyu_emu.model.AppletInfo
|
||||||
import org.suyu.suyu_emu.model.Game
|
import dev.suyu.suyu_emu.model.Game
|
||||||
import org.suyu.suyu_emu.viewholder.AbstractViewHolder
|
import dev.suyu.suyu_emu.viewholder.AbstractViewHolder
|
||||||
|
|
||||||
class CabinetLauncherDialogAdapter(val fragment: Fragment) :
|
class CabinetLauncherDialogAdapter(val fragment: Fragment) :
|
||||||
AbstractListAdapter<CabinetMode, CabinetModeViewHolder>(
|
AbstractListAdapter<CabinetMode, CabinetModeViewHolder>(
|
|
@ -1,18 +1,18 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.adapters
|
package dev.suyu.suyu_emu.adapters
|
||||||
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.databinding.CardDriverOptionBinding
|
import dev.suyu.suyu_emu.databinding.CardDriverOptionBinding
|
||||||
import org.suyu.suyu_emu.features.settings.model.StringSetting
|
import dev.suyu.suyu_emu.features.settings.model.StringSetting
|
||||||
import org.suyu.suyu_emu.model.Driver
|
import dev.suyu.suyu_emu.model.Driver
|
||||||
import org.suyu.suyu_emu.model.DriverViewModel
|
import dev.suyu.suyu_emu.model.DriverViewModel
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.marquee
|
import dev.suyu.suyu_emu.utils.ViewUtils.marquee
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.setVisible
|
import dev.suyu.suyu_emu.utils.ViewUtils.setVisible
|
||||||
import org.suyu.suyu_emu.viewholder.AbstractViewHolder
|
import dev.suyu.suyu_emu.viewholder.AbstractViewHolder
|
||||||
|
|
||||||
class DriverAdapter(private val driverViewModel: DriverViewModel) :
|
class DriverAdapter(private val driverViewModel: DriverViewModel) :
|
||||||
AbstractSingleSelectionList<Driver, DriverAdapter.DriverViewHolder>(
|
AbstractSingleSelectionList<Driver, DriverAdapter.DriverViewHolder>(
|
|
@ -1,18 +1,18 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.adapters
|
package dev.suyu.suyu_emu.adapters
|
||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.fragment.app.FragmentActivity
|
import androidx.fragment.app.FragmentActivity
|
||||||
import org.suyu.suyu_emu.databinding.CardFolderBinding
|
import dev.suyu.suyu_emu.databinding.CardFolderBinding
|
||||||
import org.suyu.suyu_emu.fragments.GameFolderPropertiesDialogFragment
|
import dev.suyu.suyu_emu.fragments.GameFolderPropertiesDialogFragment
|
||||||
import org.suyu.suyu_emu.model.GameDir
|
import dev.suyu.suyu_emu.model.GameDir
|
||||||
import org.suyu.suyu_emu.model.GamesViewModel
|
import dev.suyu.suyu_emu.model.GamesViewModel
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.marquee
|
import dev.suyu.suyu_emu.utils.ViewUtils.marquee
|
||||||
import org.suyu.suyu_emu.viewholder.AbstractViewHolder
|
import dev.suyu.suyu_emu.viewholder.AbstractViewHolder
|
||||||
|
|
||||||
class FolderAdapter(val activity: FragmentActivity, val gamesViewModel: GamesViewModel) :
|
class FolderAdapter(val activity: FragmentActivity, val gamesViewModel: GamesViewModel) :
|
||||||
AbstractDiffAdapter<GameDir, FolderAdapter.FolderViewHolder>() {
|
AbstractDiffAdapter<GameDir, FolderAdapter.FolderViewHolder>() {
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.adapters
|
package dev.suyu.suyu_emu.adapters
|
||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
|
@ -19,15 +19,15 @@ import androidx.preference.PreferenceManager
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import org.suyu.suyu_emu.HomeNavigationDirections
|
import dev.suyu.suyu_emu.HomeNavigationDirections
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.SuyuApplication
|
import dev.suyu.suyu_emu.SuyuApplication
|
||||||
import org.suyu.suyu_emu.databinding.CardGameBinding
|
import dev.suyu.suyu_emu.databinding.CardGameBinding
|
||||||
import org.suyu.suyu_emu.model.Game
|
import dev.suyu.suyu_emu.model.Game
|
||||||
import org.suyu.suyu_emu.model.GamesViewModel
|
import dev.suyu.suyu_emu.model.GamesViewModel
|
||||||
import org.suyu.suyu_emu.utils.GameIconUtils
|
import dev.suyu.suyu_emu.utils.GameIconUtils
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.marquee
|
import dev.suyu.suyu_emu.utils.ViewUtils.marquee
|
||||||
import org.suyu.suyu_emu.viewholder.AbstractViewHolder
|
import dev.suyu.suyu_emu.viewholder.AbstractViewHolder
|
||||||
|
|
||||||
class GameAdapter(private val activity: AppCompatActivity) :
|
class GameAdapter(private val activity: AppCompatActivity) :
|
||||||
AbstractDiffAdapter<Game, GameAdapter.GameViewHolder>(exact = false) {
|
AbstractDiffAdapter<Game, GameAdapter.GameViewHolder>(exact = false) {
|
|
@ -1,21 +1,21 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.adapters
|
package dev.suyu.suyu_emu.adapters
|
||||||
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.core.content.res.ResourcesCompat
|
import androidx.core.content.res.ResourcesCompat
|
||||||
import androidx.lifecycle.LifecycleOwner
|
import androidx.lifecycle.LifecycleOwner
|
||||||
import org.suyu.suyu_emu.databinding.CardInstallableIconBinding
|
import dev.suyu.suyu_emu.databinding.CardInstallableIconBinding
|
||||||
import org.suyu.suyu_emu.databinding.CardSimpleOutlinedBinding
|
import dev.suyu.suyu_emu.databinding.CardSimpleOutlinedBinding
|
||||||
import org.suyu.suyu_emu.model.GameProperty
|
import dev.suyu.suyu_emu.model.GameProperty
|
||||||
import org.suyu.suyu_emu.model.InstallableProperty
|
import dev.suyu.suyu_emu.model.InstallableProperty
|
||||||
import org.suyu.suyu_emu.model.SubmenuProperty
|
import dev.suyu.suyu_emu.model.SubmenuProperty
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.marquee
|
import dev.suyu.suyu_emu.utils.ViewUtils.marquee
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.setVisible
|
import dev.suyu.suyu_emu.utils.ViewUtils.setVisible
|
||||||
import org.suyu.suyu_emu.utils.collect
|
import dev.suyu.suyu_emu.utils.collect
|
||||||
import org.suyu.suyu_emu.viewholder.AbstractViewHolder
|
import dev.suyu.suyu_emu.viewholder.AbstractViewHolder
|
||||||
|
|
||||||
class GamePropertiesAdapter(
|
class GamePropertiesAdapter(
|
||||||
private val viewLifecycle: LifecycleOwner,
|
private val viewLifecycle: LifecycleOwner,
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.adapters
|
package dev.suyu.suyu_emu.adapters
|
||||||
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
@ -9,14 +9,14 @@ import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.core.content.res.ResourcesCompat
|
import androidx.core.content.res.ResourcesCompat
|
||||||
import androidx.lifecycle.LifecycleOwner
|
import androidx.lifecycle.LifecycleOwner
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.databinding.CardHomeOptionBinding
|
import dev.suyu.suyu_emu.databinding.CardHomeOptionBinding
|
||||||
import org.suyu.suyu_emu.fragments.MessageDialogFragment
|
import dev.suyu.suyu_emu.fragments.MessageDialogFragment
|
||||||
import org.suyu.suyu_emu.model.HomeSetting
|
import dev.suyu.suyu_emu.model.HomeSetting
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.marquee
|
import dev.suyu.suyu_emu.utils.ViewUtils.marquee
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.setVisible
|
import dev.suyu.suyu_emu.utils.ViewUtils.setVisible
|
||||||
import org.suyu.suyu_emu.utils.collect
|
import dev.suyu.suyu_emu.utils.collect
|
||||||
import org.suyu.suyu_emu.viewholder.AbstractViewHolder
|
import dev.suyu.suyu_emu.viewholder.AbstractViewHolder
|
||||||
|
|
||||||
class HomeSettingAdapter(
|
class HomeSettingAdapter(
|
||||||
private val activity: AppCompatActivity,
|
private val activity: AppCompatActivity,
|
|
@ -1,14 +1,14 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.adapters
|
package dev.suyu.suyu_emu.adapters
|
||||||
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import org.suyu.suyu_emu.databinding.CardInstallableBinding
|
import dev.suyu.suyu_emu.databinding.CardInstallableBinding
|
||||||
import org.suyu.suyu_emu.model.Installable
|
import dev.suyu.suyu_emu.model.Installable
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.setVisible
|
import dev.suyu.suyu_emu.utils.ViewUtils.setVisible
|
||||||
import org.suyu.suyu_emu.viewholder.AbstractViewHolder
|
import dev.suyu.suyu_emu.viewholder.AbstractViewHolder
|
||||||
|
|
||||||
class InstallableAdapter(installables: List<Installable>) :
|
class InstallableAdapter(installables: List<Installable>) :
|
||||||
AbstractListAdapter<Installable, InstallableAdapter.InstallableViewHolder>(installables) {
|
AbstractListAdapter<Installable, InstallableAdapter.InstallableViewHolder>(installables) {
|
|
@ -1,16 +1,16 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.adapters
|
package dev.suyu.suyu_emu.adapters
|
||||||
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import org.suyu.suyu_emu.databinding.ListItemSettingBinding
|
import dev.suyu.suyu_emu.databinding.ListItemSettingBinding
|
||||||
import org.suyu.suyu_emu.fragments.LicenseBottomSheetDialogFragment
|
import dev.suyu.suyu_emu.fragments.LicenseBottomSheetDialogFragment
|
||||||
import org.suyu.suyu_emu.model.License
|
import dev.suyu.suyu_emu.model.License
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.setVisible
|
import dev.suyu.suyu_emu.utils.ViewUtils.setVisible
|
||||||
import org.suyu.suyu_emu.viewholder.AbstractViewHolder
|
import dev.suyu.suyu_emu.viewholder.AbstractViewHolder
|
||||||
|
|
||||||
class LicenseAdapter(private val activity: AppCompatActivity, licenses: List<License>) :
|
class LicenseAdapter(private val activity: AppCompatActivity, licenses: List<License>) :
|
||||||
AbstractListAdapter<License, LicenseAdapter.LicenseViewHolder>(licenses) {
|
AbstractListAdapter<License, LicenseAdapter.LicenseViewHolder>(licenses) {
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.adapters
|
package dev.suyu.suyu_emu.adapters
|
||||||
|
|
||||||
import android.text.Html
|
import android.text.Html
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
|
@ -10,14 +10,14 @@ import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.content.res.ResourcesCompat
|
import androidx.core.content.res.ResourcesCompat
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import com.google.android.material.button.MaterialButton
|
import com.google.android.material.button.MaterialButton
|
||||||
import org.suyu.suyu_emu.databinding.PageSetupBinding
|
import dev.suyu.suyu_emu.databinding.PageSetupBinding
|
||||||
import org.suyu.suyu_emu.model.HomeViewModel
|
import dev.suyu.suyu_emu.model.HomeViewModel
|
||||||
import org.suyu.suyu_emu.model.SetupCallback
|
import dev.suyu.suyu_emu.model.SetupCallback
|
||||||
import org.suyu.suyu_emu.model.SetupPage
|
import dev.suyu.suyu_emu.model.SetupPage
|
||||||
import org.suyu.suyu_emu.model.StepState
|
import dev.suyu.suyu_emu.model.StepState
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils
|
import dev.suyu.suyu_emu.utils.ViewUtils
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.setVisible
|
import dev.suyu.suyu_emu.utils.ViewUtils.setVisible
|
||||||
import org.suyu.suyu_emu.viewholder.AbstractViewHolder
|
import dev.suyu.suyu_emu.viewholder.AbstractViewHolder
|
||||||
|
|
||||||
class SetupAdapter(val activity: AppCompatActivity, pages: List<SetupPage>) :
|
class SetupAdapter(val activity: AppCompatActivity, pages: List<SetupPage>) :
|
||||||
AbstractListAdapter<SetupPage, SetupAdapter.SetupPageViewHolder>(pages) {
|
AbstractListAdapter<SetupPage, SetupAdapter.SetupPageViewHolder>(pages) {
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.applets.keyboard
|
package dev.suyu.suyu_emu.applets.keyboard
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
|
@ -13,9 +13,9 @@ import android.view.inputmethod.InputMethodManager
|
||||||
import androidx.annotation.Keep
|
import androidx.annotation.Keep
|
||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.ViewCompat
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
import org.suyu.suyu_emu.NativeLibrary
|
import dev.suyu.suyu_emu.NativeLibrary
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.applets.keyboard.ui.KeyboardDialogFragment
|
import dev.suyu.suyu_emu.applets.keyboard.ui.KeyboardDialogFragment
|
||||||
|
|
||||||
@Keep
|
@Keep
|
||||||
object SoftwareKeyboard {
|
object SoftwareKeyboard {
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.applets.keyboard.ui
|
package dev.suyu.suyu_emu.applets.keyboard.ui
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
|
@ -10,11 +10,11 @@ import android.text.InputFilter
|
||||||
import android.text.InputType
|
import android.text.InputType
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.applets.keyboard.SoftwareKeyboard
|
import dev.suyu.suyu_emu.applets.keyboard.SoftwareKeyboard
|
||||||
import org.suyu.suyu_emu.applets.keyboard.SoftwareKeyboard.KeyboardConfig
|
import dev.suyu.suyu_emu.applets.keyboard.SoftwareKeyboard.KeyboardConfig
|
||||||
import org.suyu.suyu_emu.databinding.DialogEditTextBinding
|
import dev.suyu.suyu_emu.databinding.DialogEditTextBinding
|
||||||
import org.suyu.suyu_emu.utils.SerializableHelper.serializable
|
import dev.suyu.suyu_emu.utils.SerializableHelper.serializable
|
||||||
|
|
||||||
class KeyboardDialogFragment : DialogFragment() {
|
class KeyboardDialogFragment : DialogFragment() {
|
||||||
private lateinit var binding: DialogEditTextBinding
|
private lateinit var binding: DialogEditTextBinding
|
|
@ -1,15 +1,15 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.disk_shader_cache
|
package dev.suyu.suyu_emu.disk_shader_cache
|
||||||
|
|
||||||
import androidx.annotation.Keep
|
import androidx.annotation.Keep
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import org.suyu.suyu_emu.NativeLibrary
|
import dev.suyu.suyu_emu.NativeLibrary
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.activities.EmulationActivity
|
import dev.suyu.suyu_emu.activities.EmulationActivity
|
||||||
import org.suyu.suyu_emu.model.EmulationViewModel
|
import dev.suyu.suyu_emu.model.EmulationViewModel
|
||||||
import org.suyu.suyu_emu.utils.Log
|
import dev.suyu.suyu_emu.utils.Log
|
||||||
|
|
||||||
@Keep
|
@Keep
|
||||||
object DiskShaderCacheProgress {
|
object DiskShaderCacheProgress {
|
|
@ -4,7 +4,7 @@
|
||||||
// SPDX-License-Identifier: MPL-2.0
|
// SPDX-License-Identifier: MPL-2.0
|
||||||
// Copyright © 2023 Skyline Team and Contributors (https://github.com/skyline-emu/)
|
// Copyright © 2023 Skyline Team and Contributors (https://github.com/skyline-emu/)
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features
|
package dev.suyu.suyu_emu.features
|
||||||
|
|
||||||
import android.database.Cursor
|
import android.database.Cursor
|
||||||
import android.database.MatrixCursor
|
import android.database.MatrixCursor
|
||||||
|
@ -14,10 +14,10 @@ import android.provider.DocumentsContract
|
||||||
import android.provider.DocumentsProvider
|
import android.provider.DocumentsProvider
|
||||||
import android.webkit.MimeTypeMap
|
import android.webkit.MimeTypeMap
|
||||||
import java.io.*
|
import java.io.*
|
||||||
import org.suyu.suyu_emu.BuildConfig
|
import dev.suyu.suyu_emu.BuildConfig
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.SuyuApplication
|
import dev.suyu.suyu_emu.SuyuApplication
|
||||||
import org.suyu.suyu_emu.getPublicFilesDir
|
import dev.suyu.suyu_emu.getPublicFilesDir
|
||||||
|
|
||||||
class DocumentProvider : DocumentsProvider() {
|
class DocumentProvider : DocumentsProvider() {
|
||||||
private val baseDirectory: File
|
private val baseDirectory: File
|
|
@ -2,15 +2,15 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.input
|
package dev.suyu.suyu_emu.features.input
|
||||||
|
|
||||||
import org.suyu.suyu_emu.features.input.model.NativeButton
|
import dev.suyu.suyu_emu.features.input.model.NativeButton
|
||||||
import org.suyu.suyu_emu.features.input.model.NativeAnalog
|
import dev.suyu.suyu_emu.features.input.model.NativeAnalog
|
||||||
import org.suyu.suyu_emu.features.input.model.InputType
|
import dev.suyu.suyu_emu.features.input.model.InputType
|
||||||
import org.suyu.suyu_emu.features.input.model.ButtonName
|
import dev.suyu.suyu_emu.features.input.model.ButtonName
|
||||||
import org.suyu.suyu_emu.features.input.model.NpadStyleIndex
|
import dev.suyu.suyu_emu.features.input.model.NpadStyleIndex
|
||||||
import org.suyu.suyu_emu.utils.NativeConfig
|
import dev.suyu.suyu_emu.utils.NativeConfig
|
||||||
import org.suyu.suyu_emu.utils.ParamPackage
|
import dev.suyu.suyu_emu.utils.ParamPackage
|
||||||
import android.view.InputDevice
|
import android.view.InputDevice
|
||||||
|
|
||||||
object NativeInput {
|
object NativeInput {
|
|
@ -2,13 +2,13 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.input
|
package dev.suyu.suyu_emu.features.input
|
||||||
|
|
||||||
import android.view.InputDevice
|
import android.view.InputDevice
|
||||||
import androidx.annotation.Keep
|
import androidx.annotation.Keep
|
||||||
import org.suyu.suyu_emu.SuyuApplication
|
import dev.suyu.suyu_emu.SuyuApplication
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.utils.InputHandler.getGUID
|
import dev.suyu.suyu_emu.utils.InputHandler.getGUID
|
||||||
|
|
||||||
@Keep
|
@Keep
|
||||||
interface SuyuInputDevice {
|
interface SuyuInputDevice {
|
|
@ -2,7 +2,7 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.input
|
package dev.suyu.suyu_emu.features.input
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
|
@ -13,7 +13,7 @@ import android.os.VibratorManager
|
||||||
import android.view.InputDevice
|
import android.view.InputDevice
|
||||||
import androidx.annotation.Keep
|
import androidx.annotation.Keep
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import org.suyu.suyu_emu.SuyuApplication
|
import dev.suyu.suyu_emu.SuyuApplication
|
||||||
|
|
||||||
@Keep
|
@Keep
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
|
@ -2,7 +2,7 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.input.model
|
package dev.suyu.suyu_emu.features.input.model
|
||||||
|
|
||||||
enum class AnalogDirection(val int: Int, val param: String) {
|
enum class AnalogDirection(val int: Int, val param: String) {
|
||||||
Up(0, "up"),
|
Up(0, "up"),
|
|
@ -2,7 +2,7 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.input.model
|
package dev.suyu.suyu_emu.features.input.model
|
||||||
|
|
||||||
// Loosely matches the enum in common/input.h
|
// Loosely matches the enum in common/input.h
|
||||||
enum class ButtonName(val int: Int) {
|
enum class ButtonName(val int: Int) {
|
|
@ -2,7 +2,7 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.input.model
|
package dev.suyu.suyu_emu.features.input.model
|
||||||
|
|
||||||
// Must match the corresponding enum in input_common/main.h
|
// Must match the corresponding enum in input_common/main.h
|
||||||
enum class InputType(val int: Int) {
|
enum class InputType(val int: Int) {
|
|
@ -2,7 +2,7 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.input.model
|
package dev.suyu.suyu_emu.features.input.model
|
||||||
|
|
||||||
// Must match enum in src/common/settings_input.h
|
// Must match enum in src/common/settings_input.h
|
||||||
enum class NativeAnalog(val int: Int) {
|
enum class NativeAnalog(val int: Int) {
|
|
@ -2,7 +2,7 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.input.model
|
package dev.suyu.suyu_emu.features.input.model
|
||||||
|
|
||||||
// Must match enum in src/common/settings_input.h
|
// Must match enum in src/common/settings_input.h
|
||||||
enum class NativeButton(val int: Int) {
|
enum class NativeButton(val int: Int) {
|
|
@ -2,7 +2,7 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.input.model
|
package dev.suyu.suyu_emu.features.input.model
|
||||||
|
|
||||||
// Must match enum in src/common/settings_input.h
|
// Must match enum in src/common/settings_input.h
|
||||||
enum class NativeTrigger(val int: Int) {
|
enum class NativeTrigger(val int: Int) {
|
|
@ -2,10 +2,10 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.input.model
|
package dev.suyu.suyu_emu.features.input.model
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
|
|
||||||
// Must match enum in src/core/hid/hid_types.h
|
// Must match enum in src/core/hid/hid_types.h
|
||||||
enum class NpadStyleIndex(val int: Int, @StringRes val nameId: Int = 0) {
|
enum class NpadStyleIndex(val int: Int, @StringRes val nameId: Int = 0) {
|
|
@ -2,7 +2,7 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.input.model
|
package dev.suyu.suyu_emu.features.input.model
|
||||||
|
|
||||||
import androidx.annotation.Keep
|
import androidx.annotation.Keep
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model
|
package dev.suyu.suyu_emu.features.settings.model
|
||||||
|
|
||||||
interface AbstractBooleanSetting : AbstractSetting {
|
interface AbstractBooleanSetting : AbstractSetting {
|
||||||
fun getBoolean(needsGlobal: Boolean = false): Boolean
|
fun getBoolean(needsGlobal: Boolean = false): Boolean
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model
|
package dev.suyu.suyu_emu.features.settings.model
|
||||||
|
|
||||||
interface AbstractByteSetting : AbstractSetting {
|
interface AbstractByteSetting : AbstractSetting {
|
||||||
fun getByte(needsGlobal: Boolean = false): Byte
|
fun getByte(needsGlobal: Boolean = false): Byte
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model
|
package dev.suyu.suyu_emu.features.settings.model
|
||||||
|
|
||||||
interface AbstractFloatSetting : AbstractSetting {
|
interface AbstractFloatSetting : AbstractSetting {
|
||||||
fun getFloat(needsGlobal: Boolean = false): Float
|
fun getFloat(needsGlobal: Boolean = false): Float
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model
|
package dev.suyu.suyu_emu.features.settings.model
|
||||||
|
|
||||||
interface AbstractIntSetting : AbstractSetting {
|
interface AbstractIntSetting : AbstractSetting {
|
||||||
fun getInt(needsGlobal: Boolean = false): Int
|
fun getInt(needsGlobal: Boolean = false): Int
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model
|
package dev.suyu.suyu_emu.features.settings.model
|
||||||
|
|
||||||
interface AbstractLongSetting : AbstractSetting {
|
interface AbstractLongSetting : AbstractSetting {
|
||||||
fun getLong(needsGlobal: Boolean = false): Long
|
fun getLong(needsGlobal: Boolean = false): Long
|
|
@ -1,9 +1,9 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model
|
package dev.suyu.suyu_emu.features.settings.model
|
||||||
|
|
||||||
import org.suyu.suyu_emu.utils.NativeConfig
|
import dev.suyu.suyu_emu.utils.NativeConfig
|
||||||
|
|
||||||
interface AbstractSetting {
|
interface AbstractSetting {
|
||||||
val key: String
|
val key: String
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model
|
package dev.suyu.suyu_emu.features.settings.model
|
||||||
|
|
||||||
interface AbstractShortSetting : AbstractSetting {
|
interface AbstractShortSetting : AbstractSetting {
|
||||||
fun getShort(needsGlobal: Boolean = false): Short
|
fun getShort(needsGlobal: Boolean = false): Short
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model
|
package dev.suyu.suyu_emu.features.settings.model
|
||||||
|
|
||||||
interface AbstractStringSetting : AbstractSetting {
|
interface AbstractStringSetting : AbstractSetting {
|
||||||
fun getString(needsGlobal: Boolean = false): String
|
fun getString(needsGlobal: Boolean = false): String
|
|
@ -1,9 +1,9 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model
|
package dev.suyu.suyu_emu.features.settings.model
|
||||||
|
|
||||||
import org.suyu.suyu_emu.utils.NativeConfig
|
import dev.suyu.suyu_emu.utils.NativeConfig
|
||||||
|
|
||||||
enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
||||||
AUDIO_MUTED("audio_muted"),
|
AUDIO_MUTED("audio_muted"),
|
|
@ -1,9 +1,9 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model
|
package dev.suyu.suyu_emu.features.settings.model
|
||||||
|
|
||||||
import org.suyu.suyu_emu.utils.NativeConfig
|
import dev.suyu.suyu_emu.utils.NativeConfig
|
||||||
|
|
||||||
enum class ByteSetting(override val key: String) : AbstractByteSetting {
|
enum class ByteSetting(override val key: String) : AbstractByteSetting {
|
||||||
AUDIO_VOLUME("volume");
|
AUDIO_VOLUME("volume");
|
|
@ -1,9 +1,9 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model
|
package dev.suyu.suyu_emu.features.settings.model
|
||||||
|
|
||||||
import org.suyu.suyu_emu.utils.NativeConfig
|
import dev.suyu.suyu_emu.utils.NativeConfig
|
||||||
|
|
||||||
enum class FloatSetting(override val key: String) : AbstractFloatSetting {
|
enum class FloatSetting(override val key: String) : AbstractFloatSetting {
|
||||||
// No float settings currently exist
|
// No float settings currently exist
|
|
@ -1,9 +1,9 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model
|
package dev.suyu.suyu_emu.features.settings.model
|
||||||
|
|
||||||
import org.suyu.suyu_emu.utils.NativeConfig
|
import dev.suyu.suyu_emu.utils.NativeConfig
|
||||||
|
|
||||||
enum class IntSetting(override val key: String) : AbstractIntSetting {
|
enum class IntSetting(override val key: String) : AbstractIntSetting {
|
||||||
CPU_BACKEND("cpu_backend"),
|
CPU_BACKEND("cpu_backend"),
|
|
@ -1,9 +1,9 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model
|
package dev.suyu.suyu_emu.features.settings.model
|
||||||
|
|
||||||
import org.suyu.suyu_emu.utils.NativeConfig
|
import dev.suyu.suyu_emu.utils.NativeConfig
|
||||||
|
|
||||||
enum class LongSetting(override val key: String) : AbstractLongSetting {
|
enum class LongSetting(override val key: String) : AbstractLongSetting {
|
||||||
CUSTOM_RTC("custom_rtc");
|
CUSTOM_RTC("custom_rtc");
|
|
@ -1,10 +1,10 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model
|
package dev.suyu.suyu_emu.features.settings.model
|
||||||
|
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.SuyuApplication
|
import dev.suyu.suyu_emu.SuyuApplication
|
||||||
|
|
||||||
object Settings {
|
object Settings {
|
||||||
enum class MenuTag(val titleId: Int = 0) {
|
enum class MenuTag(val titleId: Int = 0) {
|
|
@ -1,9 +1,9 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model
|
package dev.suyu.suyu_emu.features.settings.model
|
||||||
|
|
||||||
import org.suyu.suyu_emu.utils.NativeConfig
|
import dev.suyu.suyu_emu.utils.NativeConfig
|
||||||
|
|
||||||
enum class ShortSetting(override val key: String) : AbstractShortSetting {
|
enum class ShortSetting(override val key: String) : AbstractShortSetting {
|
||||||
RENDERER_SPEED_LIMIT("speed_limit");
|
RENDERER_SPEED_LIMIT("speed_limit");
|
|
@ -1,9 +1,9 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model
|
package dev.suyu.suyu_emu.features.settings.model
|
||||||
|
|
||||||
import org.suyu.suyu_emu.utils.NativeConfig
|
import dev.suyu.suyu_emu.utils.NativeConfig
|
||||||
|
|
||||||
enum class StringSetting(override val key: String) : AbstractStringSetting {
|
enum class StringSetting(override val key: String) : AbstractStringSetting {
|
||||||
DRIVER_PATH("driver_path"),
|
DRIVER_PATH("driver_path"),
|
|
@ -2,14 +2,14 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model.view
|
package dev.suyu.suyu_emu.features.settings.model.view
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import org.suyu.suyu_emu.features.input.NativeInput
|
import dev.suyu.suyu_emu.features.input.NativeInput
|
||||||
import org.suyu.suyu_emu.features.input.model.AnalogDirection
|
import dev.suyu.suyu_emu.features.input.model.AnalogDirection
|
||||||
import org.suyu.suyu_emu.features.input.model.InputType
|
import dev.suyu.suyu_emu.features.input.model.InputType
|
||||||
import org.suyu.suyu_emu.features.input.model.NativeAnalog
|
import dev.suyu.suyu_emu.features.input.model.NativeAnalog
|
||||||
import org.suyu.suyu_emu.utils.ParamPackage
|
import dev.suyu.suyu_emu.utils.ParamPackage
|
||||||
|
|
||||||
class AnalogInputSetting(
|
class AnalogInputSetting(
|
||||||
override val playerIndex: Int,
|
override val playerIndex: Int,
|
|
@ -2,13 +2,13 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model.view
|
package dev.suyu.suyu_emu.features.settings.model.view
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import org.suyu.suyu_emu.utils.ParamPackage
|
import dev.suyu.suyu_emu.utils.ParamPackage
|
||||||
import org.suyu.suyu_emu.features.input.NativeInput
|
import dev.suyu.suyu_emu.features.input.NativeInput
|
||||||
import org.suyu.suyu_emu.features.input.model.InputType
|
import dev.suyu.suyu_emu.features.input.model.InputType
|
||||||
import org.suyu.suyu_emu.features.input.model.NativeButton
|
import dev.suyu.suyu_emu.features.input.model.NativeButton
|
||||||
|
|
||||||
class ButtonInputSetting(
|
class ButtonInputSetting(
|
||||||
override val playerIndex: Int,
|
override val playerIndex: Int,
|
|
@ -1,10 +1,10 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model.view
|
package dev.suyu.suyu_emu.features.settings.model.view
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractLongSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractLongSetting
|
||||||
|
|
||||||
class DateTimeSetting(
|
class DateTimeSetting(
|
||||||
private val longSetting: AbstractLongSetting,
|
private val longSetting: AbstractLongSetting,
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model.view
|
package dev.suyu.suyu_emu.features.settings.model.view
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model.view
|
package dev.suyu.suyu_emu.features.settings.model.view
|
||||||
|
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.features.input.NativeInput
|
import dev.suyu.suyu_emu.features.input.NativeInput
|
||||||
import org.suyu.suyu_emu.utils.NativeConfig
|
import dev.suyu.suyu_emu.utils.NativeConfig
|
||||||
|
|
||||||
class InputProfileSetting(private val playerIndex: Int) :
|
class InputProfileSetting(private val playerIndex: Int) :
|
||||||
SettingsItem(emptySetting, R.string.profile, "", 0, "") {
|
SettingsItem(emptySetting, R.string.profile, "", 0, "") {
|
|
@ -2,15 +2,15 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model.view
|
package dev.suyu.suyu_emu.features.settings.model.view
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.SuyuApplication
|
import dev.suyu.suyu_emu.SuyuApplication
|
||||||
import org.suyu.suyu_emu.features.input.NativeInput
|
import dev.suyu.suyu_emu.features.input.NativeInput
|
||||||
import org.suyu.suyu_emu.features.input.model.ButtonName
|
import dev.suyu.suyu_emu.features.input.model.ButtonName
|
||||||
import org.suyu.suyu_emu.features.input.model.InputType
|
import dev.suyu.suyu_emu.features.input.model.InputType
|
||||||
import org.suyu.suyu_emu.utils.ParamPackage
|
import dev.suyu.suyu_emu.utils.ParamPackage
|
||||||
|
|
||||||
sealed class InputSetting(
|
sealed class InputSetting(
|
||||||
@StringRes titleId: Int,
|
@StringRes titleId: Int,
|
|
@ -1,10 +1,10 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model.view
|
package dev.suyu.suyu_emu.features.settings.model.view
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractIntSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractIntSetting
|
||||||
|
|
||||||
class IntSingleChoiceSetting(
|
class IntSingleChoiceSetting(
|
||||||
private val intSetting: AbstractIntSetting,
|
private val intSetting: AbstractIntSetting,
|
|
@ -2,13 +2,13 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model.view
|
package dev.suyu.suyu_emu.features.settings.model.view
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import org.suyu.suyu_emu.features.input.NativeInput
|
import dev.suyu.suyu_emu.features.input.NativeInput
|
||||||
import org.suyu.suyu_emu.features.input.model.InputType
|
import dev.suyu.suyu_emu.features.input.model.InputType
|
||||||
import org.suyu.suyu_emu.features.input.model.NativeAnalog
|
import dev.suyu.suyu_emu.features.input.model.NativeAnalog
|
||||||
import org.suyu.suyu_emu.utils.ParamPackage
|
import dev.suyu.suyu_emu.utils.ParamPackage
|
||||||
|
|
||||||
class ModifierInputSetting(
|
class ModifierInputSetting(
|
||||||
override val playerIndex: Int,
|
override val playerIndex: Int,
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model.view
|
package dev.suyu.suyu_emu.features.settings.model.view
|
||||||
|
|
||||||
import androidx.annotation.DrawableRes
|
import androidx.annotation.DrawableRes
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
|
@ -1,23 +1,23 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model.view
|
package dev.suyu.suyu_emu.features.settings.model.view
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import org.suyu.suyu_emu.NativeLibrary
|
import dev.suyu.suyu_emu.NativeLibrary
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.SuyuApplication
|
import dev.suyu.suyu_emu.SuyuApplication
|
||||||
import org.suyu.suyu_emu.features.input.NativeInput
|
import dev.suyu.suyu_emu.features.input.NativeInput
|
||||||
import org.suyu.suyu_emu.features.input.model.NpadStyleIndex
|
import dev.suyu.suyu_emu.features.input.model.NpadStyleIndex
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractBooleanSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractBooleanSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.BooleanSetting
|
import dev.suyu.suyu_emu.features.settings.model.BooleanSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.ByteSetting
|
import dev.suyu.suyu_emu.features.settings.model.ByteSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.IntSetting
|
import dev.suyu.suyu_emu.features.settings.model.IntSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.LongSetting
|
import dev.suyu.suyu_emu.features.settings.model.LongSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.ShortSetting
|
import dev.suyu.suyu_emu.features.settings.model.ShortSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.StringSetting
|
import dev.suyu.suyu_emu.features.settings.model.StringSetting
|
||||||
import org.suyu.suyu_emu.utils.NativeConfig
|
import dev.suyu.suyu_emu.utils.NativeConfig
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ViewModel abstraction for an Item in the RecyclerView powering SettingsFragments.
|
* ViewModel abstraction for an Item in the RecyclerView powering SettingsFragments.
|
|
@ -1,12 +1,12 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model.view
|
package dev.suyu.suyu_emu.features.settings.model.view
|
||||||
|
|
||||||
import androidx.annotation.ArrayRes
|
import androidx.annotation.ArrayRes
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractIntSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractIntSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractSetting
|
||||||
|
|
||||||
class SingleChoiceSetting(
|
class SingleChoiceSetting(
|
||||||
setting: AbstractSetting,
|
setting: AbstractSetting,
|
|
@ -1,14 +1,14 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model.view
|
package dev.suyu.suyu_emu.features.settings.model.view
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractByteSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractByteSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractFloatSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractFloatSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractIntSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractIntSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractShortSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractShortSetting
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
class SliderSetting(
|
class SliderSetting(
|
|
@ -2,10 +2,10 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model.view
|
package dev.suyu.suyu_emu.features.settings.model.view
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractStringSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractStringSetting
|
||||||
|
|
||||||
class StringInputSetting(
|
class StringInputSetting(
|
||||||
setting: AbstractStringSetting,
|
setting: AbstractStringSetting,
|
|
@ -1,10 +1,10 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model.view
|
package dev.suyu.suyu_emu.features.settings.model.view
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractStringSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractStringSetting
|
||||||
|
|
||||||
class StringSingleChoiceSetting(
|
class StringSingleChoiceSetting(
|
||||||
private val stringSetting: AbstractStringSetting,
|
private val stringSetting: AbstractStringSetting,
|
|
@ -1,11 +1,11 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model.view
|
package dev.suyu.suyu_emu.features.settings.model.view
|
||||||
|
|
||||||
import androidx.annotation.DrawableRes
|
import androidx.annotation.DrawableRes
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import org.suyu.suyu_emu.features.settings.model.Settings
|
import dev.suyu.suyu_emu.features.settings.model.Settings
|
||||||
|
|
||||||
class SubmenuSetting(
|
class SubmenuSetting(
|
||||||
@StringRes titleId: Int = 0,
|
@StringRes titleId: Int = 0,
|
|
@ -1,12 +1,12 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.model.view
|
package dev.suyu.suyu_emu.features.settings.model.view
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractBooleanSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractBooleanSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractIntSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractIntSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractSetting
|
||||||
|
|
||||||
class SwitchSetting(
|
class SwitchSetting(
|
||||||
setting: AbstractSetting,
|
setting: AbstractSetting,
|
|
@ -2,7 +2,7 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui
|
package dev.suyu.suyu_emu.features.settings.ui
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.graphics.drawable.Animatable2
|
import android.graphics.drawable.Animatable2
|
||||||
|
@ -18,17 +18,17 @@ import android.view.ViewGroup
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.databinding.DialogMappingBinding
|
import dev.suyu.suyu_emu.databinding.DialogMappingBinding
|
||||||
import org.suyu.suyu_emu.features.input.NativeInput
|
import dev.suyu.suyu_emu.features.input.NativeInput
|
||||||
import org.suyu.suyu_emu.features.input.model.NativeAnalog
|
import dev.suyu.suyu_emu.features.input.model.NativeAnalog
|
||||||
import org.suyu.suyu_emu.features.input.model.NativeButton
|
import dev.suyu.suyu_emu.features.input.model.NativeButton
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.AnalogInputSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.AnalogInputSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.ButtonInputSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.ButtonInputSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.InputSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.InputSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.ModifierInputSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.ModifierInputSetting
|
||||||
import org.suyu.suyu_emu.utils.InputHandler
|
import dev.suyu.suyu_emu.utils.InputHandler
|
||||||
import org.suyu.suyu_emu.utils.ParamPackage
|
import dev.suyu.suyu_emu.utils.ParamPackage
|
||||||
|
|
||||||
class InputDialogFragment : DialogFragment() {
|
class InputDialogFragment : DialogFragment() {
|
||||||
private var inputAccepted = false
|
private var inputAccepted = false
|
|
@ -2,16 +2,16 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui
|
package dev.suyu.suyu_emu.features.settings.ui
|
||||||
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import org.suyu.suyu_emu.SuyuApplication
|
import dev.suyu.suyu_emu.SuyuApplication
|
||||||
import org.suyu.suyu_emu.adapters.AbstractListAdapter
|
import dev.suyu.suyu_emu.adapters.AbstractListAdapter
|
||||||
import org.suyu.suyu_emu.databinding.ListItemInputProfileBinding
|
import dev.suyu.suyu_emu.databinding.ListItemInputProfileBinding
|
||||||
import org.suyu.suyu_emu.viewholder.AbstractViewHolder
|
import dev.suyu.suyu_emu.viewholder.AbstractViewHolder
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
|
|
||||||
class InputProfileAdapter(options: List<ProfileItem>) :
|
class InputProfileAdapter(options: List<ProfileItem>) :
|
||||||
AbstractListAdapter<ProfileItem, AbstractViewHolder<ProfileItem>>(options) {
|
AbstractListAdapter<ProfileItem, AbstractViewHolder<ProfileItem>>(options) {
|
|
@ -2,7 +2,7 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui
|
package dev.suyu.suyu_emu.features.settings.ui
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
@ -14,11 +14,11 @@ import androidx.fragment.app.DialogFragment
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.databinding.DialogInputProfilesBinding
|
import dev.suyu.suyu_emu.databinding.DialogInputProfilesBinding
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.InputProfileSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.InputProfileSetting
|
||||||
import org.suyu.suyu_emu.fragments.MessageDialogFragment
|
import dev.suyu.suyu_emu.fragments.MessageDialogFragment
|
||||||
import org.suyu.suyu_emu.utils.collect
|
import dev.suyu.suyu_emu.utils.collect
|
||||||
|
|
||||||
class InputProfileDialogFragment : DialogFragment() {
|
class InputProfileDialogFragment : DialogFragment() {
|
||||||
private var position = 0
|
private var position = 0
|
|
@ -2,7 +2,7 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui
|
package dev.suyu.suyu_emu.features.settings.ui
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
@ -10,9 +10,9 @@ import android.widget.Toast
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import org.suyu.suyu_emu.databinding.DialogEditTextBinding
|
import dev.suyu.suyu_emu.databinding.DialogEditTextBinding
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.InputProfileSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.InputProfileSetting
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
|
|
||||||
class NewInputProfileDialogFragment : DialogFragment() {
|
class NewInputProfileDialogFragment : DialogFragment() {
|
||||||
private var position = 0
|
private var position = 0
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui
|
package dev.suyu.suyu_emu.features.settings.ui
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
@ -16,14 +16,14 @@ import androidx.core.view.WindowInsetsCompat
|
||||||
import androidx.navigation.fragment.NavHostFragment
|
import androidx.navigation.fragment.NavHostFragment
|
||||||
import androidx.navigation.navArgs
|
import androidx.navigation.navArgs
|
||||||
import com.google.android.material.color.MaterialColors
|
import com.google.android.material.color.MaterialColors
|
||||||
import org.suyu.suyu_emu.NativeLibrary
|
import dev.suyu.suyu_emu.NativeLibrary
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.databinding.ActivitySettingsBinding
|
import dev.suyu.suyu_emu.databinding.ActivitySettingsBinding
|
||||||
import org.suyu.suyu_emu.features.input.NativeInput
|
import dev.suyu.suyu_emu.features.input.NativeInput
|
||||||
import org.suyu.suyu_emu.features.settings.utils.SettingsFile
|
import dev.suyu.suyu_emu.features.settings.utils.SettingsFile
|
||||||
import org.suyu.suyu_emu.fragments.ResetSettingsDialogFragment
|
import dev.suyu.suyu_emu.fragments.ResetSettingsDialogFragment
|
||||||
import org.suyu.suyu_emu.utils.*
|
import dev.suyu.suyu_emu.utils.*
|
||||||
|
|
||||||
class SettingsActivity : AppCompatActivity() {
|
class SettingsActivity : AppCompatActivity() {
|
||||||
private lateinit var binding: ActivitySettingsBinding
|
private lateinit var binding: ActivitySettingsBinding
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui
|
package dev.suyu.suyu_emu.features.settings.ui
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.icu.util.Calendar
|
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.datepicker.MaterialDatePicker
|
||||||
import com.google.android.material.timepicker.MaterialTimePicker
|
import com.google.android.material.timepicker.MaterialTimePicker
|
||||||
import com.google.android.material.timepicker.TimeFormat
|
import com.google.android.material.timepicker.TimeFormat
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.SettingsNavigationDirections
|
import dev.suyu.suyu_emu.SettingsNavigationDirections
|
||||||
import org.suyu.suyu_emu.databinding.ListItemSettingBinding
|
import dev.suyu.suyu_emu.databinding.ListItemSettingBinding
|
||||||
import org.suyu.suyu_emu.databinding.ListItemSettingInputBinding
|
import dev.suyu.suyu_emu.databinding.ListItemSettingInputBinding
|
||||||
import org.suyu.suyu_emu.databinding.ListItemSettingSwitchBinding
|
import dev.suyu.suyu_emu.databinding.ListItemSettingSwitchBinding
|
||||||
import org.suyu.suyu_emu.databinding.ListItemSettingsHeaderBinding
|
import dev.suyu.suyu_emu.databinding.ListItemSettingsHeaderBinding
|
||||||
import org.suyu.suyu_emu.features.input.NativeInput
|
import dev.suyu.suyu_emu.features.input.NativeInput
|
||||||
import org.suyu.suyu_emu.features.input.model.AnalogDirection
|
import dev.suyu.suyu_emu.features.input.model.AnalogDirection
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractIntSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractIntSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.*
|
import dev.suyu.suyu_emu.features.settings.model.view.*
|
||||||
import org.suyu.suyu_emu.features.settings.ui.viewholder.*
|
import dev.suyu.suyu_emu.features.settings.ui.viewholder.*
|
||||||
import org.suyu.suyu_emu.utils.ParamPackage
|
import dev.suyu.suyu_emu.utils.ParamPackage
|
||||||
|
|
||||||
class SettingsAdapter(
|
class SettingsAdapter(
|
||||||
private val fragment: Fragment,
|
private val fragment: Fragment,
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui
|
package dev.suyu.suyu_emu.features.settings.ui
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
|
@ -13,21 +13,21 @@ import androidx.fragment.app.DialogFragment
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import com.google.android.material.slider.Slider
|
import com.google.android.material.slider.Slider
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.databinding.DialogEditTextBinding
|
import dev.suyu.suyu_emu.databinding.DialogEditTextBinding
|
||||||
import org.suyu.suyu_emu.databinding.DialogSliderBinding
|
import dev.suyu.suyu_emu.databinding.DialogSliderBinding
|
||||||
import org.suyu.suyu_emu.features.input.NativeInput
|
import dev.suyu.suyu_emu.features.input.NativeInput
|
||||||
import org.suyu.suyu_emu.features.input.model.AnalogDirection
|
import dev.suyu.suyu_emu.features.input.model.AnalogDirection
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.AnalogInputSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.AnalogInputSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.ButtonInputSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.ButtonInputSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.IntSingleChoiceSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.IntSingleChoiceSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
import dev.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SingleChoiceSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.SingleChoiceSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SliderSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.SliderSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.StringInputSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.StringInputSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.StringSingleChoiceSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.StringSingleChoiceSetting
|
||||||
import org.suyu.suyu_emu.utils.ParamPackage
|
import dev.suyu.suyu_emu.utils.ParamPackage
|
||||||
import org.suyu.suyu_emu.utils.collect
|
import dev.suyu.suyu_emu.utils.collect
|
||||||
|
|
||||||
class SettingsDialogFragment : DialogFragment(), DialogInterface.OnClickListener {
|
class SettingsDialogFragment : DialogFragment(), DialogInterface.OnClickListener {
|
||||||
private var type = 0
|
private var type = 0
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui
|
package dev.suyu.suyu_emu.features.settings.ui
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
@ -17,13 +17,13 @@ import androidx.navigation.findNavController
|
||||||
import androidx.navigation.fragment.navArgs
|
import androidx.navigation.fragment.navArgs
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import com.google.android.material.transition.MaterialSharedAxis
|
import com.google.android.material.transition.MaterialSharedAxis
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.databinding.FragmentSettingsBinding
|
import dev.suyu.suyu_emu.databinding.FragmentSettingsBinding
|
||||||
import org.suyu.suyu_emu.features.input.NativeInput
|
import dev.suyu.suyu_emu.features.input.NativeInput
|
||||||
import org.suyu.suyu_emu.features.settings.model.Settings
|
import dev.suyu.suyu_emu.features.settings.model.Settings
|
||||||
import org.suyu.suyu_emu.fragments.MessageDialogFragment
|
import dev.suyu.suyu_emu.fragments.MessageDialogFragment
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.updateMargins
|
import dev.suyu.suyu_emu.utils.ViewUtils.updateMargins
|
||||||
import org.suyu.suyu_emu.utils.collect
|
import dev.suyu.suyu_emu.utils.collect
|
||||||
|
|
||||||
class SettingsFragment : Fragment() {
|
class SettingsFragment : Fragment() {
|
||||||
private lateinit var presenter: SettingsFragmentPresenter
|
private lateinit var presenter: SettingsFragmentPresenter
|
|
@ -1,32 +1,32 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui
|
package dev.suyu.suyu_emu.features.settings.ui
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import org.suyu.suyu_emu.NativeLibrary
|
import dev.suyu.suyu_emu.NativeLibrary
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.SuyuApplication
|
import dev.suyu.suyu_emu.SuyuApplication
|
||||||
import org.suyu.suyu_emu.features.input.NativeInput
|
import dev.suyu.suyu_emu.features.input.NativeInput
|
||||||
import org.suyu.suyu_emu.features.input.model.AnalogDirection
|
import dev.suyu.suyu_emu.features.input.model.AnalogDirection
|
||||||
import org.suyu.suyu_emu.features.input.model.NativeAnalog
|
import dev.suyu.suyu_emu.features.input.model.NativeAnalog
|
||||||
import org.suyu.suyu_emu.features.input.model.NativeButton
|
import dev.suyu.suyu_emu.features.input.model.NativeButton
|
||||||
import org.suyu.suyu_emu.features.input.model.NpadStyleIndex
|
import dev.suyu.suyu_emu.features.input.model.NpadStyleIndex
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractBooleanSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractBooleanSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.AbstractIntSetting
|
import dev.suyu.suyu_emu.features.settings.model.AbstractIntSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.BooleanSetting
|
import dev.suyu.suyu_emu.features.settings.model.BooleanSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.ByteSetting
|
import dev.suyu.suyu_emu.features.settings.model.ByteSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.IntSetting
|
import dev.suyu.suyu_emu.features.settings.model.IntSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.LongSetting
|
import dev.suyu.suyu_emu.features.settings.model.LongSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.Settings
|
import dev.suyu.suyu_emu.features.settings.model.Settings
|
||||||
import org.suyu.suyu_emu.features.settings.model.Settings.MenuTag
|
import dev.suyu.suyu_emu.features.settings.model.Settings.MenuTag
|
||||||
import org.suyu.suyu_emu.features.settings.model.ShortSetting
|
import dev.suyu.suyu_emu.features.settings.model.ShortSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.StringSetting
|
import dev.suyu.suyu_emu.features.settings.model.StringSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.*
|
import dev.suyu.suyu_emu.features.settings.model.view.*
|
||||||
import org.suyu.suyu_emu.utils.InputHandler
|
import dev.suyu.suyu_emu.utils.InputHandler
|
||||||
import org.suyu.suyu_emu.utils.NativeConfig
|
import dev.suyu.suyu_emu.utils.NativeConfig
|
||||||
|
|
||||||
class SettingsFragmentPresenter(
|
class SettingsFragmentPresenter(
|
||||||
private val settingsViewModel: SettingsViewModel,
|
private val settingsViewModel: SettingsViewModel,
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui
|
package dev.suyu.suyu_emu.features.settings.ui
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Bundle
|
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.divider.MaterialDividerItemDecoration
|
||||||
import com.google.android.material.transition.MaterialSharedAxis
|
import com.google.android.material.transition.MaterialSharedAxis
|
||||||
import info.debatty.java.stringsimilarity.Cosine
|
import info.debatty.java.stringsimilarity.Cosine
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.databinding.FragmentSettingsSearchBinding
|
import dev.suyu.suyu_emu.databinding.FragmentSettingsSearchBinding
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
import dev.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
||||||
import org.suyu.suyu_emu.utils.NativeConfig
|
import dev.suyu.suyu_emu.utils.NativeConfig
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.setVisible
|
import dev.suyu.suyu_emu.utils.ViewUtils.setVisible
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.updateMargins
|
import dev.suyu.suyu_emu.utils.ViewUtils.updateMargins
|
||||||
import org.suyu.suyu_emu.utils.collect
|
import dev.suyu.suyu_emu.utils.collect
|
||||||
|
|
||||||
class SettingsSearchFragment : Fragment() {
|
class SettingsSearchFragment : Fragment() {
|
||||||
private var _binding: FragmentSettingsSearchBinding? = null
|
private var _binding: FragmentSettingsSearchBinding? = null
|
|
@ -1,18 +1,18 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui
|
package dev.suyu.suyu_emu.features.settings.ui
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.SuyuApplication
|
import dev.suyu.suyu_emu.SuyuApplication
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
import dev.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
||||||
import org.suyu.suyu_emu.model.Game
|
import dev.suyu.suyu_emu.model.Game
|
||||||
import org.suyu.suyu_emu.utils.InputHandler
|
import dev.suyu.suyu_emu.utils.InputHandler
|
||||||
import org.suyu.suyu_emu.utils.ParamPackage
|
import dev.suyu.suyu_emu.utils.ParamPackage
|
||||||
|
|
||||||
class SettingsViewModel : ViewModel() {
|
class SettingsViewModel : ViewModel() {
|
||||||
var game: Game? = null
|
var game: Game? = null
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui.viewholder
|
package dev.suyu.suyu_emu.features.settings.ui.viewholder
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import java.time.Instant
|
import java.time.Instant
|
||||||
|
@ -9,11 +9,11 @@ import java.time.ZoneId
|
||||||
import java.time.ZonedDateTime
|
import java.time.ZonedDateTime
|
||||||
import java.time.format.DateTimeFormatter
|
import java.time.format.DateTimeFormatter
|
||||||
import java.time.format.FormatStyle
|
import java.time.format.FormatStyle
|
||||||
import org.suyu.suyu_emu.databinding.ListItemSettingBinding
|
import dev.suyu.suyu_emu.databinding.ListItemSettingBinding
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.DateTimeSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.DateTimeSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
import dev.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
||||||
import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
import dev.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.setVisible
|
import dev.suyu.suyu_emu.utils.ViewUtils.setVisible
|
||||||
|
|
||||||
class DateTimeViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) :
|
class DateTimeViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) :
|
||||||
SettingViewHolder(binding.root, adapter) {
|
SettingViewHolder(binding.root, adapter) {
|
|
@ -1,12 +1,12 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui.viewholder
|
package dev.suyu.suyu_emu.features.settings.ui.viewholder
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import org.suyu.suyu_emu.databinding.ListItemSettingsHeaderBinding
|
import dev.suyu.suyu_emu.databinding.ListItemSettingsHeaderBinding
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
import dev.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
||||||
import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
import dev.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
||||||
|
|
||||||
class HeaderViewHolder(val binding: ListItemSettingsHeaderBinding, adapter: SettingsAdapter) :
|
class HeaderViewHolder(val binding: ListItemSettingsHeaderBinding, adapter: SettingsAdapter) :
|
||||||
SettingViewHolder(binding.root, adapter) {
|
SettingViewHolder(binding.root, adapter) {
|
|
@ -2,15 +2,15 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui.viewholder
|
package dev.suyu.suyu_emu.features.settings.ui.viewholder
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import org.suyu.suyu_emu.databinding.ListItemSettingBinding
|
import dev.suyu.suyu_emu.databinding.ListItemSettingBinding
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.InputProfileSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.InputProfileSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
import dev.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
||||||
import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
import dev.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.setVisible
|
import dev.suyu.suyu_emu.utils.ViewUtils.setVisible
|
||||||
|
|
||||||
class InputProfileViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) :
|
class InputProfileViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) :
|
||||||
SettingViewHolder(binding.root, adapter) {
|
SettingViewHolder(binding.root, adapter) {
|
|
@ -2,18 +2,18 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui.viewholder
|
package dev.suyu.suyu_emu.features.settings.ui.viewholder
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import org.suyu.suyu_emu.databinding.ListItemSettingInputBinding
|
import dev.suyu.suyu_emu.databinding.ListItemSettingInputBinding
|
||||||
import org.suyu.suyu_emu.features.input.NativeInput
|
import dev.suyu.suyu_emu.features.input.NativeInput
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.AnalogInputSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.AnalogInputSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.ButtonInputSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.ButtonInputSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.InputSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.InputSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.ModifierInputSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.ModifierInputSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
import dev.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
||||||
import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
import dev.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.setVisible
|
import dev.suyu.suyu_emu.utils.ViewUtils.setVisible
|
||||||
|
|
||||||
class InputViewHolder(val binding: ListItemSettingInputBinding, adapter: SettingsAdapter) :
|
class InputViewHolder(val binding: ListItemSettingInputBinding, adapter: SettingsAdapter) :
|
||||||
SettingViewHolder(binding.root, adapter) {
|
SettingViewHolder(binding.root, adapter) {
|
|
@ -1,15 +1,15 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui.viewholder
|
package dev.suyu.suyu_emu.features.settings.ui.viewholder
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.core.content.res.ResourcesCompat
|
import androidx.core.content.res.ResourcesCompat
|
||||||
import org.suyu.suyu_emu.databinding.ListItemSettingBinding
|
import dev.suyu.suyu_emu.databinding.ListItemSettingBinding
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.RunnableSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.RunnableSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
import dev.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
||||||
import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
import dev.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.setVisible
|
import dev.suyu.suyu_emu.utils.ViewUtils.setVisible
|
||||||
|
|
||||||
class RunnableViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) :
|
class RunnableViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) :
|
||||||
SettingViewHolder(binding.root, adapter) {
|
SettingViewHolder(binding.root, adapter) {
|
|
@ -1,14 +1,14 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui.viewholder
|
package dev.suyu.suyu_emu.features.settings.ui.viewholder
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import org.suyu.suyu_emu.databinding.ListItemSettingBinding
|
import dev.suyu.suyu_emu.databinding.ListItemSettingBinding
|
||||||
import org.suyu.suyu_emu.databinding.ListItemSettingSwitchBinding
|
import dev.suyu.suyu_emu.databinding.ListItemSettingSwitchBinding
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
import dev.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
||||||
import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
import dev.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
||||||
|
|
||||||
abstract class SettingViewHolder(itemView: View, protected val adapter: SettingsAdapter) :
|
abstract class SettingViewHolder(itemView: View, protected val adapter: SettingsAdapter) :
|
||||||
RecyclerView.ViewHolder(itemView), View.OnClickListener, View.OnLongClickListener {
|
RecyclerView.ViewHolder(itemView), View.OnClickListener, View.OnLongClickListener {
|
|
@ -1,16 +1,16 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui.viewholder
|
package dev.suyu.suyu_emu.features.settings.ui.viewholder
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import org.suyu.suyu_emu.databinding.ListItemSettingBinding
|
import dev.suyu.suyu_emu.databinding.ListItemSettingBinding
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.IntSingleChoiceSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.IntSingleChoiceSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
import dev.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SingleChoiceSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.SingleChoiceSetting
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.StringSingleChoiceSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.StringSingleChoiceSetting
|
||||||
import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
import dev.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.setVisible
|
import dev.suyu.suyu_emu.utils.ViewUtils.setVisible
|
||||||
|
|
||||||
class SingleChoiceViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) :
|
class SingleChoiceViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) :
|
||||||
SettingViewHolder(binding.root, adapter) {
|
SettingViewHolder(binding.root, adapter) {
|
|
@ -1,15 +1,15 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui.viewholder
|
package dev.suyu.suyu_emu.features.settings.ui.viewholder
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.databinding.ListItemSettingBinding
|
import dev.suyu.suyu_emu.databinding.ListItemSettingBinding
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
import dev.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SliderSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.SliderSetting
|
||||||
import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
import dev.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.setVisible
|
import dev.suyu.suyu_emu.utils.ViewUtils.setVisible
|
||||||
|
|
||||||
class SliderViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) :
|
class SliderViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) :
|
||||||
SettingViewHolder(binding.root, adapter) {
|
SettingViewHolder(binding.root, adapter) {
|
|
@ -2,14 +2,14 @@
|
||||||
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
// SPDX-FileCopyrightText: 2024 suyu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui.viewholder
|
package dev.suyu.suyu_emu.features.settings.ui.viewholder
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import org.suyu.suyu_emu.databinding.ListItemSettingBinding
|
import dev.suyu.suyu_emu.databinding.ListItemSettingBinding
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
import dev.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.StringInputSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.StringInputSetting
|
||||||
import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
import dev.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.setVisible
|
import dev.suyu.suyu_emu.utils.ViewUtils.setVisible
|
||||||
|
|
||||||
class StringInputViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) :
|
class StringInputViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) :
|
||||||
SettingViewHolder(binding.root, adapter) {
|
SettingViewHolder(binding.root, adapter) {
|
|
@ -1,15 +1,15 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui.viewholder
|
package dev.suyu.suyu_emu.features.settings.ui.viewholder
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.core.content.res.ResourcesCompat
|
import androidx.core.content.res.ResourcesCompat
|
||||||
import org.suyu.suyu_emu.databinding.ListItemSettingBinding
|
import dev.suyu.suyu_emu.databinding.ListItemSettingBinding
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
import dev.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SubmenuSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.SubmenuSetting
|
||||||
import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
import dev.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.setVisible
|
import dev.suyu.suyu_emu.utils.ViewUtils.setVisible
|
||||||
|
|
||||||
class SubmenuViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) :
|
class SubmenuViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) :
|
||||||
SettingViewHolder(binding.root, adapter) {
|
SettingViewHolder(binding.root, adapter) {
|
|
@ -1,15 +1,15 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.ui.viewholder
|
package dev.suyu.suyu_emu.features.settings.ui.viewholder
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.CompoundButton
|
import android.widget.CompoundButton
|
||||||
import org.suyu.suyu_emu.databinding.ListItemSettingSwitchBinding
|
import dev.suyu.suyu_emu.databinding.ListItemSettingSwitchBinding
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
import dev.suyu.suyu_emu.features.settings.model.view.SettingsItem
|
||||||
import org.suyu.suyu_emu.features.settings.model.view.SwitchSetting
|
import dev.suyu.suyu_emu.features.settings.model.view.SwitchSetting
|
||||||
import org.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
import dev.suyu.suyu_emu.features.settings.ui.SettingsAdapter
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.setVisible
|
import dev.suyu.suyu_emu.utils.ViewUtils.setVisible
|
||||||
|
|
||||||
class SwitchSettingViewHolder(val binding: ListItemSettingSwitchBinding, adapter: SettingsAdapter) :
|
class SwitchSettingViewHolder(val binding: ListItemSettingSwitchBinding, adapter: SettingsAdapter) :
|
||||||
SettingViewHolder(binding.root, adapter) {
|
SettingViewHolder(binding.root, adapter) {
|
|
@ -1,14 +1,14 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.features.settings.utils
|
package dev.suyu.suyu_emu.features.settings.utils
|
||||||
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import org.suyu.suyu_emu.model.Game
|
import dev.suyu.suyu_emu.model.Game
|
||||||
import java.io.*
|
import java.io.*
|
||||||
import org.suyu.suyu_emu.utils.DirectoryInitialization
|
import dev.suyu.suyu_emu.utils.DirectoryInitialization
|
||||||
import org.suyu.suyu_emu.utils.FileUtil
|
import dev.suyu.suyu_emu.utils.FileUtil
|
||||||
import org.suyu.suyu_emu.utils.NativeConfig
|
import dev.suyu.suyu_emu.utils.NativeConfig
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contains static methods for interacting with .ini files in which settings are stored.
|
* Contains static methods for interacting with .ini files in which settings are stored.
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.fragments
|
package dev.suyu.suyu_emu.fragments
|
||||||
|
|
||||||
import android.content.ClipData
|
import android.content.ClipData
|
||||||
import android.content.ClipboardManager
|
import android.content.ClipboardManager
|
||||||
|
@ -21,11 +21,11 @@ import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import androidx.navigation.findNavController
|
import androidx.navigation.findNavController
|
||||||
import com.google.android.material.transition.MaterialSharedAxis
|
import com.google.android.material.transition.MaterialSharedAxis
|
||||||
import org.suyu.suyu_emu.BuildConfig
|
import dev.suyu.suyu_emu.BuildConfig
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.databinding.FragmentAboutBinding
|
import dev.suyu.suyu_emu.databinding.FragmentAboutBinding
|
||||||
import org.suyu.suyu_emu.model.HomeViewModel
|
import dev.suyu.suyu_emu.model.HomeViewModel
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.updateMargins
|
import dev.suyu.suyu_emu.utils.ViewUtils.updateMargins
|
||||||
|
|
||||||
class AboutFragment : Fragment() {
|
class AboutFragment : Fragment() {
|
||||||
private var _binding: FragmentAboutBinding? = null
|
private var _binding: FragmentAboutBinding? = null
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.fragments
|
package dev.suyu.suyu_emu.fragments
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
|
@ -10,11 +10,11 @@ import android.os.Bundle
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.databinding.DialogAddFolderBinding
|
import dev.suyu.suyu_emu.databinding.DialogAddFolderBinding
|
||||||
import org.suyu.suyu_emu.model.GameDir
|
import dev.suyu.suyu_emu.model.GameDir
|
||||||
import org.suyu.suyu_emu.model.GamesViewModel
|
import dev.suyu.suyu_emu.model.GamesViewModel
|
||||||
import org.suyu.suyu_emu.model.HomeViewModel
|
import dev.suyu.suyu_emu.model.HomeViewModel
|
||||||
|
|
||||||
class AddGameFolderDialogFragment : DialogFragment() {
|
class AddGameFolderDialogFragment : DialogFragment() {
|
||||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
private val homeViewModel: HomeViewModel by activityViewModels()
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.fragments
|
package dev.suyu.suyu_emu.fragments
|
||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
@ -19,16 +19,15 @@ import androidx.navigation.findNavController
|
||||||
import androidx.navigation.fragment.navArgs
|
import androidx.navigation.fragment.navArgs
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import com.google.android.material.transition.MaterialSharedAxis
|
import com.google.android.material.transition.MaterialSharedAxis
|
||||||
import kotlinx.coroutines.launch
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.adapters.AddonAdapter
|
||||||
import org.suyu.suyu_emu.adapters.AddonAdapter
|
import dev.suyu.suyu_emu.databinding.FragmentAddonsBinding
|
||||||
import org.suyu.suyu_emu.databinding.FragmentAddonsBinding
|
import dev.suyu.suyu_emu.model.AddonViewModel
|
||||||
import org.suyu.suyu_emu.model.AddonViewModel
|
import dev.suyu.suyu_emu.model.HomeViewModel
|
||||||
import org.suyu.suyu_emu.model.HomeViewModel
|
import dev.suyu.suyu_emu.utils.AddonUtil
|
||||||
import org.suyu.suyu_emu.utils.AddonUtil
|
import dev.suyu.suyu_emu.utils.FileUtil.copyFilesTo
|
||||||
import org.suyu.suyu_emu.utils.FileUtil.copyFilesTo
|
import dev.suyu.suyu_emu.utils.ViewUtils.updateMargins
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.updateMargins
|
import dev.suyu.suyu_emu.utils.collect
|
||||||
import org.suyu.suyu_emu.utils.collect
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class AddonsFragment : Fragment() {
|
class AddonsFragment : Fragment() {
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.fragments
|
package dev.suyu.suyu_emu.fragments
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
|
@ -15,13 +15,13 @@ import androidx.fragment.app.activityViewModels
|
||||||
import androidx.navigation.findNavController
|
import androidx.navigation.findNavController
|
||||||
import androidx.recyclerview.widget.GridLayoutManager
|
import androidx.recyclerview.widget.GridLayoutManager
|
||||||
import com.google.android.material.transition.MaterialSharedAxis
|
import com.google.android.material.transition.MaterialSharedAxis
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.adapters.AppletAdapter
|
import dev.suyu.suyu_emu.adapters.AppletAdapter
|
||||||
import org.suyu.suyu_emu.databinding.FragmentAppletLauncherBinding
|
import dev.suyu.suyu_emu.databinding.FragmentAppletLauncherBinding
|
||||||
import org.suyu.suyu_emu.model.Applet
|
import dev.suyu.suyu_emu.model.Applet
|
||||||
import org.suyu.suyu_emu.model.AppletInfo
|
import dev.suyu.suyu_emu.model.AppletInfo
|
||||||
import org.suyu.suyu_emu.model.HomeViewModel
|
import dev.suyu.suyu_emu.model.HomeViewModel
|
||||||
import org.suyu.suyu_emu.utils.ViewUtils.updateMargins
|
import dev.suyu.suyu_emu.utils.ViewUtils.updateMargins
|
||||||
|
|
||||||
class AppletLauncherFragment : Fragment() {
|
class AppletLauncherFragment : Fragment() {
|
||||||
private var _binding: FragmentAppletLauncherBinding? = null
|
private var _binding: FragmentAppletLauncherBinding? = null
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.fragments
|
package dev.suyu.suyu_emu.fragments
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
@ -11,9 +11,9 @@ import android.view.ViewGroup
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.adapters.CabinetLauncherDialogAdapter
|
import dev.suyu.suyu_emu.adapters.CabinetLauncherDialogAdapter
|
||||||
import org.suyu.suyu_emu.databinding.DialogListBinding
|
import dev.suyu.suyu_emu.databinding.DialogListBinding
|
||||||
|
|
||||||
class CabinetLauncherDialogFragment : DialogFragment() {
|
class CabinetLauncherDialogFragment : DialogFragment() {
|
||||||
private lateinit var binding: DialogListBinding
|
private lateinit var binding: DialogListBinding
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
package org.suyu.suyu_emu.fragments
|
package dev.suyu.suyu_emu.fragments
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
|
@ -10,10 +10,10 @@ import androidx.fragment.app.DialogFragment
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import org.suyu.suyu_emu.R
|
import dev.suyu.suyu_emu.R
|
||||||
import org.suyu.suyu_emu.SuyuApplication
|
import dev.suyu.suyu_emu.SuyuApplication
|
||||||
import org.suyu.suyu_emu.model.AddonViewModel
|
import dev.suyu.suyu_emu.model.AddonViewModel
|
||||||
import org.suyu.suyu_emu.ui.main.MainActivity
|
import dev.suyu.suyu_emu.ui.main.MainActivity
|
||||||
|
|
||||||
class ContentTypeSelectionDialogFragment : DialogFragment() {
|
class ContentTypeSelectionDialogFragment : DialogFragment() {
|
||||||
private val addonViewModel: AddonViewModel by activityViewModels()
|
private val addonViewModel: AddonViewModel by activityViewModels()
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue