mirror of
https://git.citron-emu.org/citron/emulator
synced 2026-01-02 00:13:45 +00:00
chore: update project branding to Citron
Signed-off-by: Zephyron <zephyron@citron-emu.org>
This commit is contained in:
@@ -17,7 +17,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
|
||||
<application
|
||||
android:name="org.citron.citron_emu.YuzuApplication"
|
||||
android:name="org.citron.citron_emu.CitronApplication"
|
||||
android:label="@string/app_name_suffixed"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
android:allowBackup="true"
|
||||
@@ -36,7 +36,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
<activity
|
||||
android:name="org.citron.citron_emu.ui.main.MainActivity"
|
||||
android:exported="true"
|
||||
android:theme="@style/Theme.Yuzu.Splash.Main">
|
||||
android:theme="@style/Theme.Citron.Splash.Main">
|
||||
|
||||
<!-- This intentfilter marks this Activity as the one that gets launched from Home screen. -->
|
||||
<intent-filter>
|
||||
@@ -49,12 +49,12 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
<activity
|
||||
android:name="org.citron.citron_emu.features.settings.ui.SettingsActivity"
|
||||
android:theme="@style/Theme.Yuzu.Main"
|
||||
android:theme="@style/Theme.Citron.Main"
|
||||
android:label="@string/preferences_settings"/>
|
||||
|
||||
<activity
|
||||
android:name="org.citron.citron_emu.activities.EmulationActivity"
|
||||
android:theme="@style/Theme.Yuzu.Main"
|
||||
android:theme="@style/Theme.Citron.Main"
|
||||
android:launchMode="singleTop"
|
||||
android:supportsPictureInPicture="true"
|
||||
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|uiMode"
|
||||
|
||||
@@ -24,7 +24,7 @@ import org.citron.citron_emu.model.GameVerificationResult
|
||||
|
||||
/**
|
||||
* Class which contains methods that interact
|
||||
* with the native side of the Yuzu code.
|
||||
* with the native side of the Citron code.
|
||||
*/
|
||||
object NativeLibrary {
|
||||
@JvmField
|
||||
@@ -42,7 +42,7 @@ object NativeLibrary {
|
||||
@JvmStatic
|
||||
fun openContentUri(path: String?, openmode: String?): Int {
|
||||
return if (DocumentsTree.isNativePath(path!!)) {
|
||||
YuzuApplication.documentsTree!!.openContentUri(path, openmode)
|
||||
CitronApplication.documentsTree!!.openContentUri(path, openmode)
|
||||
} else {
|
||||
FileUtil.openContentUri(path, openmode)
|
||||
}
|
||||
@@ -52,7 +52,7 @@ object NativeLibrary {
|
||||
@JvmStatic
|
||||
fun getSize(path: String?): Long {
|
||||
return if (DocumentsTree.isNativePath(path!!)) {
|
||||
YuzuApplication.documentsTree!!.getFileSize(path)
|
||||
CitronApplication.documentsTree!!.getFileSize(path)
|
||||
} else {
|
||||
FileUtil.getFileSize(path)
|
||||
}
|
||||
@@ -62,7 +62,7 @@ object NativeLibrary {
|
||||
@JvmStatic
|
||||
fun exists(path: String?): Boolean {
|
||||
return if (DocumentsTree.isNativePath(path!!)) {
|
||||
YuzuApplication.documentsTree!!.exists(path)
|
||||
CitronApplication.documentsTree!!.exists(path)
|
||||
} else {
|
||||
FileUtil.exists(path, suppressLog = true)
|
||||
}
|
||||
@@ -72,7 +72,7 @@ object NativeLibrary {
|
||||
@JvmStatic
|
||||
fun isDirectory(path: String?): Boolean {
|
||||
return if (DocumentsTree.isNativePath(path!!)) {
|
||||
YuzuApplication.documentsTree!!.isDirectory(path)
|
||||
CitronApplication.documentsTree!!.isDirectory(path)
|
||||
} else {
|
||||
FileUtil.isDirectory(path)
|
||||
}
|
||||
@@ -82,7 +82,7 @@ object NativeLibrary {
|
||||
@JvmStatic
|
||||
fun getParentDirectory(path: String): String =
|
||||
if (DocumentsTree.isNativePath(path)) {
|
||||
YuzuApplication.documentsTree!!.getParentDirectory(path)
|
||||
CitronApplication.documentsTree!!.getParentDirectory(path)
|
||||
} else {
|
||||
path
|
||||
}
|
||||
@@ -91,7 +91,7 @@ object NativeLibrary {
|
||||
@JvmStatic
|
||||
fun getFilename(path: String): String =
|
||||
if (DocumentsTree.isNativePath(path)) {
|
||||
YuzuApplication.documentsTree!!.getFilename(path)
|
||||
CitronApplication.documentsTree!!.getFilename(path)
|
||||
} else {
|
||||
FileUtil.getFilename(Uri.parse(path))
|
||||
}
|
||||
@@ -326,7 +326,7 @@ object NativeLibrary {
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs the Yuzu version, Android version and, CPU.
|
||||
* Logs the Citron version, Android version and, CPU.
|
||||
*/
|
||||
external fun logDeviceInfo()
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ import androidx.navigation.fragment.NavHostFragment
|
||||
import androidx.preference.PreferenceManager
|
||||
import org.citron.citron_emu.NativeLibrary
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.databinding.ActivityEmulationBinding
|
||||
import org.citron.citron_emu.features.input.NativeInput
|
||||
import org.citron.citron_emu.features.settings.model.BooleanSetting
|
||||
@@ -123,7 +123,7 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
|
||||
nfcReader = NfcReader(this)
|
||||
nfcReader.initialize()
|
||||
|
||||
val preferences = PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
|
||||
val preferences = PreferenceManager.getDefaultSharedPreferences(CitronApplication.appContext)
|
||||
if (!preferences.getBoolean(Settings.PREF_MEMORY_WARNING_SHOWN, false)) {
|
||||
if (MemoryUtil.isLessThan(MemoryUtil.REQUIRED_MEMORY, MemoryUtil.totalMemory)) {
|
||||
Toast.makeText(
|
||||
|
||||
@@ -12,7 +12,7 @@ import androidx.navigation.findNavController
|
||||
import org.citron.citron_emu.HomeNavigationDirections
|
||||
import org.citron.citron_emu.NativeLibrary
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.databinding.CardSimpleOutlinedBinding
|
||||
import org.citron.citron_emu.model.Applet
|
||||
import org.citron.citron_emu.model.AppletInfo
|
||||
@@ -64,7 +64,7 @@ class AppletAdapter(val activity: FragmentActivity, applets: List<Applet>) :
|
||||
|
||||
NativeLibrary.setCurrentAppletId(applet.appletInfo.appletId)
|
||||
val appletGame = Game(
|
||||
title = YuzuApplication.appContext.getString(applet.titleId),
|
||||
title = CitronApplication.appContext.getString(applet.titleId),
|
||||
path = appletPath
|
||||
)
|
||||
val action = HomeNavigationDirections.actionGlobalEmulationActivity(appletGame)
|
||||
|
||||
@@ -11,7 +11,7 @@ import androidx.navigation.fragment.findNavController
|
||||
import org.citron.citron_emu.HomeNavigationDirections
|
||||
import org.citron.citron_emu.NativeLibrary
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.databinding.DialogListItemBinding
|
||||
import org.citron.citron_emu.model.CabinetMode
|
||||
import org.citron.citron_emu.adapters.CabinetLauncherDialogAdapter.CabinetModeViewHolder
|
||||
@@ -49,7 +49,7 @@ class CabinetLauncherDialogAdapter(val fragment: Fragment) :
|
||||
NativeLibrary.setCurrentAppletId(AppletInfo.Cabinet.appletId)
|
||||
NativeLibrary.setCabinetMode(mode.id)
|
||||
val appletGame = Game(
|
||||
title = YuzuApplication.appContext.getString(R.string.cabinet_applet),
|
||||
title = CitronApplication.appContext.getString(R.string.cabinet_applet),
|
||||
path = appletPath
|
||||
)
|
||||
val action = HomeNavigationDirections.actionGlobalEmulationActivity(appletGame)
|
||||
|
||||
@@ -21,7 +21,7 @@ import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.citron.citron_emu.HomeNavigationDirections
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.databinding.CardGameBinding
|
||||
import org.citron.citron_emu.model.Game
|
||||
import org.citron.citron_emu.model.GamesViewModel
|
||||
@@ -51,12 +51,12 @@ class GameAdapter(private val activity: AppCompatActivity) :
|
||||
|
||||
fun onClick(game: Game) {
|
||||
val gameExists = DocumentFile.fromSingleUri(
|
||||
YuzuApplication.appContext,
|
||||
CitronApplication.appContext,
|
||||
Uri.parse(game.path)
|
||||
)?.exists() == true
|
||||
if (!gameExists) {
|
||||
Toast.makeText(
|
||||
YuzuApplication.appContext,
|
||||
CitronApplication.appContext,
|
||||
R.string.loader_error_file_not_found,
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
@@ -66,7 +66,7 @@ class GameAdapter(private val activity: AppCompatActivity) :
|
||||
}
|
||||
|
||||
val preferences =
|
||||
PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
|
||||
PreferenceManager.getDefaultSharedPreferences(CitronApplication.appContext)
|
||||
preferences.edit()
|
||||
.putLong(
|
||||
game.keyLastPlayedTime,
|
||||
@@ -77,12 +77,12 @@ class GameAdapter(private val activity: AppCompatActivity) :
|
||||
activity.lifecycleScope.launch {
|
||||
withContext(Dispatchers.IO) {
|
||||
val shortcut =
|
||||
ShortcutInfoCompat.Builder(YuzuApplication.appContext, game.path)
|
||||
ShortcutInfoCompat.Builder(CitronApplication.appContext, game.path)
|
||||
.setShortLabel(game.title)
|
||||
.setIcon(GameIconUtils.getShortcutIcon(activity, game))
|
||||
.setIntent(game.launchIntent)
|
||||
.build()
|
||||
ShortcutManagerCompat.pushDynamicShortcut(YuzuApplication.appContext, shortcut)
|
||||
ShortcutManagerCompat.pushDynamicShortcut(CitronApplication.appContext, shortcut)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ import org.citron.citron_emu.utils.Log
|
||||
|
||||
fun Context.getPublicFilesDir(): File = getExternalFilesDir(null) ?: filesDir
|
||||
|
||||
class YuzuApplication : Application() {
|
||||
class CitronApplication : Application() {
|
||||
private fun createNotificationChannels() {
|
||||
val noticeChannel = NotificationChannel(
|
||||
getString(R.string.notice_notification_channel_id),
|
||||
@@ -47,7 +47,7 @@ class YuzuApplication : Application() {
|
||||
|
||||
companion object {
|
||||
var documentsTree: DocumentsTree? = null
|
||||
lateinit var application: YuzuApplication
|
||||
lateinit var application: CitronApplication
|
||||
|
||||
val appContext: Context
|
||||
get() = application.applicationContext
|
||||
|
||||
@@ -16,12 +16,12 @@ import android.webkit.MimeTypeMap
|
||||
import java.io.*
|
||||
import org.citron.citron_emu.BuildConfig
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.getPublicFilesDir
|
||||
|
||||
class DocumentProvider : DocumentsProvider() {
|
||||
private val baseDirectory: File
|
||||
get() = File(YuzuApplication.application.getPublicFilesDir().canonicalPath)
|
||||
get() = File(CitronApplication.application.getPublicFilesDir().canonicalPath)
|
||||
|
||||
companion object {
|
||||
private val DEFAULT_ROOT_PROJECTION: Array<String> = arrayOf(
|
||||
|
||||
@@ -177,9 +177,9 @@ object NativeInput {
|
||||
|
||||
/**
|
||||
* Registers a controller to be used with mapping
|
||||
* @param device An [InputDevice] or the input overlay wrapped with [YuzuInputDevice]
|
||||
* @param device An [InputDevice] or the input overlay wrapped with [CitronInputDevice]
|
||||
*/
|
||||
external fun registerController(device: YuzuInputDevice)
|
||||
external fun registerController(device: CitronInputDevice)
|
||||
|
||||
/**
|
||||
* Gets the names of input devices that have been registered with the input subsystem via [registerController]
|
||||
|
||||
@@ -5,12 +5,12 @@ package org.citron.citron_emu.features.input
|
||||
|
||||
import android.view.InputDevice
|
||||
import androidx.annotation.Keep
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.utils.InputHandler.getGUID
|
||||
|
||||
@Keep
|
||||
interface YuzuInputDevice {
|
||||
interface CitronInputDevice {
|
||||
fun getName(): String
|
||||
|
||||
fun getGUID(): String
|
||||
@@ -25,15 +25,15 @@ interface YuzuInputDevice {
|
||||
fun hasKeys(keys: IntArray): BooleanArray = BooleanArray(0)
|
||||
}
|
||||
|
||||
class YuzuPhysicalDevice(
|
||||
class CitronPhysicalDevice(
|
||||
private val device: InputDevice,
|
||||
private val port: Int,
|
||||
useSystemVibrator: Boolean
|
||||
) : YuzuInputDevice {
|
||||
) : CitronInputDevice {
|
||||
private val vibrator = if (useSystemVibrator) {
|
||||
YuzuVibrator.getSystemVibrator()
|
||||
CitronVibrator.getSystemVibrator()
|
||||
} else {
|
||||
YuzuVibrator.getControllerVibrator(device)
|
||||
CitronVibrator.getControllerVibrator(device)
|
||||
}
|
||||
|
||||
override fun getName(): String {
|
||||
@@ -60,14 +60,14 @@ class YuzuPhysicalDevice(
|
||||
override fun hasKeys(keys: IntArray): BooleanArray = device.hasKeys(*keys)
|
||||
}
|
||||
|
||||
class YuzuInputOverlayDevice(
|
||||
class CitronInputOverlayDevice(
|
||||
private val vibration: Boolean,
|
||||
private val port: Int
|
||||
) : YuzuInputDevice {
|
||||
private val vibrator = YuzuVibrator.getSystemVibrator()
|
||||
) : CitronInputDevice {
|
||||
private val vibrator = CitronVibrator.getSystemVibrator()
|
||||
|
||||
override fun getName(): String {
|
||||
return YuzuApplication.appContext.getString(R.string.input_overlay)
|
||||
return CitronApplication.appContext.getString(R.string.input_overlay)
|
||||
}
|
||||
|
||||
override fun getGUID(): String {
|
||||
|
||||
@@ -12,32 +12,32 @@ import android.os.VibratorManager
|
||||
import android.view.InputDevice
|
||||
import androidx.annotation.Keep
|
||||
import androidx.annotation.RequiresApi
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
|
||||
@Keep
|
||||
@Suppress("DEPRECATION")
|
||||
interface YuzuVibrator {
|
||||
interface CitronVibrator {
|
||||
fun supportsVibration(): Boolean
|
||||
|
||||
fun vibrate(intensity: Float)
|
||||
|
||||
companion object {
|
||||
fun getControllerVibrator(device: InputDevice): YuzuVibrator =
|
||||
fun getControllerVibrator(device: InputDevice): CitronVibrator =
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
YuzuVibratorManager(device.vibratorManager)
|
||||
CitronVibratorManager(device.vibratorManager)
|
||||
} else {
|
||||
YuzuVibratorManagerCompat(device.vibrator)
|
||||
CitronVibratorManagerCompat(device.vibrator)
|
||||
}
|
||||
|
||||
fun getSystemVibrator(): YuzuVibrator =
|
||||
fun getSystemVibrator(): CitronVibrator =
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
val vibratorManager = YuzuApplication.appContext
|
||||
val vibratorManager = CitronApplication.appContext
|
||||
.getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager
|
||||
YuzuVibratorManager(vibratorManager)
|
||||
CitronVibratorManager(vibratorManager)
|
||||
} else {
|
||||
val vibrator = YuzuApplication.appContext
|
||||
val vibrator = CitronApplication.appContext
|
||||
.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
|
||||
YuzuVibratorManagerCompat(vibrator)
|
||||
CitronVibratorManagerCompat(vibrator)
|
||||
}
|
||||
|
||||
fun getVibrationEffect(intensity: Float): VibrationEffect? {
|
||||
@@ -53,24 +53,24 @@ interface YuzuVibrator {
|
||||
}
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.S)
|
||||
class YuzuVibratorManager(private val vibratorManager: VibratorManager) : YuzuVibrator {
|
||||
class CitronVibratorManager(private val vibratorManager: VibratorManager) : CitronVibrator {
|
||||
override fun supportsVibration(): Boolean {
|
||||
return vibratorManager.vibratorIds.isNotEmpty()
|
||||
}
|
||||
|
||||
override fun vibrate(intensity: Float) {
|
||||
val vibration = YuzuVibrator.getVibrationEffect(intensity) ?: return
|
||||
val vibration = CitronVibrator.getVibrationEffect(intensity) ?: return
|
||||
vibratorManager.vibrate(CombinedVibration.createParallel(vibration))
|
||||
}
|
||||
}
|
||||
|
||||
class YuzuVibratorManagerCompat(private val vibrator: Vibrator) : YuzuVibrator {
|
||||
class CitronVibratorManagerCompat(private val vibrator: Vibrator) : CitronVibrator {
|
||||
override fun supportsVibration(): Boolean {
|
||||
return vibrator.hasVibrator()
|
||||
}
|
||||
|
||||
override fun vibrate(intensity: Float) {
|
||||
val vibration = YuzuVibrator.getVibrationEffect(intensity) ?: return
|
||||
val vibration = CitronVibrator.getVibrationEffect(intensity) ?: return
|
||||
vibrator.vibrate(vibration)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
package org.citron.citron_emu.features.settings.model
|
||||
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
|
||||
object Settings {
|
||||
enum class MenuTag(val titleId: Int = 0) {
|
||||
@@ -26,7 +26,7 @@ object Settings {
|
||||
}
|
||||
|
||||
fun getPlayerString(player: Int): String =
|
||||
YuzuApplication.appContext.getString(R.string.preferences_player, player)
|
||||
CitronApplication.appContext.getString(R.string.preferences_player, player)
|
||||
|
||||
const val PREF_FIRST_APP_LAUNCH = "FirstApplicationLaunch"
|
||||
const val PREF_MEMORY_WARNING_SHOWN = "MemoryWarningShown"
|
||||
|
||||
@@ -5,7 +5,7 @@ package org.citron.citron_emu.features.settings.model.view
|
||||
|
||||
import androidx.annotation.StringRes
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.features.input.NativeInput
|
||||
import org.citron.citron_emu.features.input.model.ButtonName
|
||||
import org.citron.citron_emu.features.input.model.InputType
|
||||
@@ -19,7 +19,7 @@ sealed class InputSetting(
|
||||
abstract val inputType: InputType
|
||||
abstract val playerIndex: Int
|
||||
|
||||
protected val context get() = YuzuApplication.appContext
|
||||
protected val context get() = CitronApplication.appContext
|
||||
|
||||
abstract fun getSelectedValue(): String
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ package org.citron.citron_emu.features.settings.model.view
|
||||
import androidx.annotation.StringRes
|
||||
import org.citron.citron_emu.NativeLibrary
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.features.input.NativeInput
|
||||
import org.citron.citron_emu.features.input.model.NpadStyleIndex
|
||||
import org.citron.citron_emu.features.settings.model.AbstractBooleanSetting
|
||||
@@ -37,14 +37,14 @@ abstract class SettingsItem(
|
||||
|
||||
val title: String by lazy {
|
||||
if (titleId != 0) {
|
||||
return@lazy YuzuApplication.appContext.getString(titleId)
|
||||
return@lazy CitronApplication.appContext.getString(titleId)
|
||||
}
|
||||
return@lazy titleString
|
||||
}
|
||||
|
||||
val description: String by lazy {
|
||||
if (descriptionId != 0) {
|
||||
return@lazy YuzuApplication.appContext.getString(descriptionId)
|
||||
return@lazy CitronApplication.appContext.getString(descriptionId)
|
||||
}
|
||||
return@lazy descriptionString
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ package org.citron.citron_emu.features.settings.ui
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.adapters.AbstractListAdapter
|
||||
import org.citron.citron_emu.databinding.ListItemInputProfileBinding
|
||||
import org.citron.citron_emu.viewholder.AbstractViewHolder
|
||||
@@ -57,7 +57,7 @@ sealed interface ProfileItem {
|
||||
data class NewProfileItem(
|
||||
val createNewProfile: () -> Unit
|
||||
) : ProfileItem {
|
||||
override val name: String = YuzuApplication.appContext.getString(R.string.create_new_profile)
|
||||
override val name: String = CitronApplication.appContext.getString(R.string.create_new_profile)
|
||||
}
|
||||
|
||||
data class ExistingProfileItem(
|
||||
|
||||
@@ -8,7 +8,7 @@ import android.os.Build
|
||||
import android.widget.Toast
|
||||
import org.citron.citron_emu.NativeLibrary
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.features.input.NativeInput
|
||||
import org.citron.citron_emu.features.input.model.AnalogDirection
|
||||
import org.citron.citron_emu.features.input.model.NativeAnalog
|
||||
@@ -35,7 +35,7 @@ class SettingsFragmentPresenter(
|
||||
) {
|
||||
private var settingsList = ArrayList<SettingsItem>()
|
||||
|
||||
private val context get() = YuzuApplication.appContext
|
||||
private val context get() = CitronApplication.appContext
|
||||
|
||||
// Extension for altering settings list based on each setting's properties
|
||||
fun ArrayList<SettingsItem>.add(key: String) {
|
||||
|
||||
@@ -8,7 +8,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.features.settings.model.view.SettingsItem
|
||||
import org.citron.citron_emu.model.Game
|
||||
import org.citron.citron_emu.utils.InputHandler
|
||||
@@ -73,7 +73,7 @@ class SettingsViewModel : ViewModel() {
|
||||
fun setSliderTextValue(value: Float, units: String) {
|
||||
_sliderProgress.value = value.toInt()
|
||||
_sliderTextValue.value = String.format(
|
||||
YuzuApplication.appContext.getString(R.string.value_with_units),
|
||||
CitronApplication.appContext.getString(R.string.value_with_units),
|
||||
value.toInt().toString(),
|
||||
units
|
||||
)
|
||||
|
||||
@@ -11,7 +11,7 @@ import androidx.fragment.app.activityViewModels
|
||||
import androidx.preference.PreferenceManager
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.model.AddonViewModel
|
||||
import org.citron.citron_emu.ui.main.MainActivity
|
||||
|
||||
@@ -19,7 +19,7 @@ class ContentTypeSelectionDialogFragment : DialogFragment() {
|
||||
private val addonViewModel: AddonViewModel by activityViewModels()
|
||||
|
||||
private val preferences get() =
|
||||
PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
|
||||
PreferenceManager.getDefaultSharedPreferences(CitronApplication.appContext)
|
||||
|
||||
private var selectedItem = 0
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.citron.citron_emu.HomeNavigationDirections
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.adapters.GamePropertiesAdapter
|
||||
import org.citron.citron_emu.databinding.FragmentGamePropertiesBinding
|
||||
import org.citron.citron_emu.features.settings.model.Settings
|
||||
@@ -224,7 +224,7 @@ class GamePropertiesFragment : Fragment() {
|
||||
negativeAction = {
|
||||
File(args.game.saveDir).deleteRecursively()
|
||||
Toast.makeText(
|
||||
YuzuApplication.appContext,
|
||||
CitronApplication.appContext,
|
||||
R.string.save_data_deleted_successfully,
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
@@ -263,7 +263,7 @@ class GamePropertiesFragment : Fragment() {
|
||||
positiveAction = {
|
||||
shaderCacheDir.deleteRecursively()
|
||||
Toast.makeText(
|
||||
YuzuApplication.appContext,
|
||||
CitronApplication.appContext,
|
||||
R.string.cleared_shaders_successfully,
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
@@ -374,7 +374,7 @@ class GamePropertiesFragment : Fragment() {
|
||||
return@withContext
|
||||
}
|
||||
Toast.makeText(
|
||||
YuzuApplication.appContext,
|
||||
CitronApplication.appContext,
|
||||
getString(R.string.save_file_imported_success),
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
@@ -384,7 +384,7 @@ class GamePropertiesFragment : Fragment() {
|
||||
cacheSaveDir.deleteRecursively()
|
||||
} catch (e: Exception) {
|
||||
Toast.makeText(
|
||||
YuzuApplication.appContext,
|
||||
CitronApplication.appContext,
|
||||
getString(R.string.fatal_error),
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
|
||||
@@ -31,7 +31,7 @@ import org.citron.citron_emu.BuildConfig
|
||||
import org.citron.citron_emu.HomeNavigationDirections
|
||||
import org.citron.citron_emu.NativeLibrary
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.adapters.HomeSettingAdapter
|
||||
import org.citron.citron_emu.databinding.FragmentHomeSettingsBinding
|
||||
import org.citron.citron_emu.features.DocumentProvider
|
||||
@@ -180,7 +180,7 @@ class HomeSettingsFragment : Fragment() {
|
||||
)
|
||||
} else {
|
||||
val failedNames = result.joinToString("\n")
|
||||
val errorMessage = YuzuApplication.appContext.getString(
|
||||
val errorMessage = CitronApplication.appContext.getString(
|
||||
R.string.verification_failed_for,
|
||||
failedNames
|
||||
)
|
||||
|
||||
@@ -22,7 +22,7 @@ import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.citron.citron_emu.NativeLibrary
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.adapters.InstallableAdapter
|
||||
import org.citron.citron_emu.databinding.FragmentInstallablesBinding
|
||||
import org.citron.citron_emu.model.HomeViewModel
|
||||
@@ -109,7 +109,7 @@ class InstallableFragment : Fragment() {
|
||||
)
|
||||
if (!oldSaveDataFolder.exists() && !futureSaveDataFolder.exists()) {
|
||||
Toast.makeText(
|
||||
YuzuApplication.appContext,
|
||||
CitronApplication.appContext,
|
||||
R.string.no_save_data_found,
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
@@ -262,7 +262,7 @@ class InstallableFragment : Fragment() {
|
||||
cacheSaveDir.deleteRecursively()
|
||||
} catch (e: Exception) {
|
||||
Toast.makeText(
|
||||
YuzuApplication.appContext,
|
||||
CitronApplication.appContext,
|
||||
getString(R.string.fatal_error),
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
|
||||
@@ -22,7 +22,7 @@ import info.debatty.java.stringsimilarity.Jaccard
|
||||
import info.debatty.java.stringsimilarity.JaroWinkler
|
||||
import java.util.Locale
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.adapters.GameAdapter
|
||||
import org.citron.citron_emu.databinding.FragmentSearchBinding
|
||||
import org.citron.citron_emu.layout.AutofitGridLayoutManager
|
||||
@@ -58,7 +58,7 @@ class SearchFragment : Fragment() {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
homeViewModel.setNavigationVisibility(visible = true, animated = true)
|
||||
homeViewModel.setStatusBarShadeVisibility(true)
|
||||
preferences = PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
|
||||
preferences = PreferenceManager.getDefaultSharedPreferences(CitronApplication.appContext)
|
||||
|
||||
if (savedInstanceState != null) {
|
||||
binding.searchText.setText(savedInstanceState.getString(SEARCH_TEXT))
|
||||
|
||||
@@ -30,7 +30,7 @@ import kotlinx.coroutines.launch
|
||||
import org.citron.citron_emu.NativeLibrary
|
||||
import java.io.File
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.adapters.SetupAdapter
|
||||
import org.citron.citron_emu.databinding.FragmentSetupBinding
|
||||
import org.citron.citron_emu.features.settings.model.Settings
|
||||
@@ -343,7 +343,7 @@ class SetupFragment : Fragment() {
|
||||
}
|
||||
|
||||
private fun finishSetup() {
|
||||
PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext).edit()
|
||||
PreferenceManager.getDefaultSharedPreferences(CitronApplication.appContext).edit()
|
||||
.putBoolean(Settings.PREF_FIRST_APP_LAUNCH, false)
|
||||
.apply()
|
||||
mainActivity.finishSetup(binding.root.findNavController())
|
||||
|
||||
@@ -15,7 +15,7 @@ import kotlinx.coroutines.flow.stateIn
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.features.settings.model.StringSetting
|
||||
import org.citron.citron_emu.features.settings.utils.SettingsFile
|
||||
import org.citron.citron_emu.model.Driver.Companion.toDriver
|
||||
@@ -70,7 +70,7 @@ class DriverViewModel : ViewModel() {
|
||||
val newDriverList = mutableListOf(
|
||||
Driver(
|
||||
selectedDriver == GpuDriverMetadata(),
|
||||
YuzuApplication.appContext.getString(R.string.system_gpu_driver),
|
||||
CitronApplication.appContext.getString(R.string.system_gpu_driver),
|
||||
systemDriverData?.get(0) ?: "",
|
||||
systemDriverData?.get(1) ?: ""
|
||||
)
|
||||
@@ -186,7 +186,7 @@ class DriverViewModel : ViewModel() {
|
||||
|
||||
private fun updateName() {
|
||||
_selectedDriverTitle.value = GpuDriverHelper.customDriverSettingData.name
|
||||
?: YuzuApplication.appContext.getString(R.string.system_gpu_driver)
|
||||
?: CitronApplication.appContext.getString(R.string.system_gpu_driver)
|
||||
}
|
||||
|
||||
private fun setDriverReady() {
|
||||
|
||||
@@ -11,7 +11,7 @@ import kotlinx.parcelize.Parcelize
|
||||
import kotlinx.serialization.Serializable
|
||||
import org.citron.citron_emu.NativeLibrary
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.activities.EmulationActivity
|
||||
import org.citron.citron_emu.utils.DirectoryInitialization
|
||||
import org.citron.citron_emu.utils.FileUtil
|
||||
@@ -52,7 +52,7 @@ class Game(
|
||||
}
|
||||
|
||||
val saveZipName: String
|
||||
get() = "$title ${YuzuApplication.appContext.getString(R.string.save_data).lowercase()} - ${
|
||||
get() = "$title ${CitronApplication.appContext.getString(R.string.save_data).lowercase()} - ${
|
||||
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"))
|
||||
}.zip"
|
||||
|
||||
@@ -64,7 +64,7 @@ class Game(
|
||||
get() = DirectoryInitialization.userDirectory + "/load/" + programIdHex + "/"
|
||||
|
||||
val launchIntent: Intent
|
||||
get() = Intent(YuzuApplication.appContext, EmulationActivity::class.java).apply {
|
||||
get() = Intent(CitronApplication.appContext, EmulationActivity::class.java).apply {
|
||||
action = Intent.ACTION_VIEW
|
||||
data = Uri.parse(path)
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ import kotlinx.coroutines.withContext
|
||||
import kotlinx.serialization.decodeFromString
|
||||
import kotlinx.serialization.json.Json
|
||||
import org.citron.citron_emu.NativeLibrary
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.utils.GameHelper
|
||||
import org.citron.citron_emu.utils.NativeConfig
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
@@ -94,7 +94,7 @@ class GamesViewModel : ViewModel() {
|
||||
if (firstStartup) {
|
||||
// Retrieve list of cached games
|
||||
val storedGames =
|
||||
PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
|
||||
PreferenceManager.getDefaultSharedPreferences(CitronApplication.appContext)
|
||||
.getStringSet(GameHelper.KEY_GAMES, emptySet())
|
||||
if (storedGames!!.isNotEmpty()) {
|
||||
val deserializedGames = mutableSetOf<Game>()
|
||||
@@ -109,7 +109,7 @@ class GamesViewModel : ViewModel() {
|
||||
|
||||
val gameExists =
|
||||
DocumentFile.fromSingleUri(
|
||||
YuzuApplication.appContext,
|
||||
CitronApplication.appContext,
|
||||
Uri.parse(game.path)
|
||||
)?.exists()
|
||||
if (gameExists == true) {
|
||||
|
||||
@@ -5,7 +5,7 @@ package org.citron.citron_emu.overlay.model
|
||||
|
||||
import androidx.annotation.IntegerRes
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
|
||||
enum class OverlayControl(
|
||||
val id: String,
|
||||
@@ -136,7 +136,7 @@ enum class OverlayControl(
|
||||
|
||||
fun getDefaultPositionForLayout(layout: OverlayLayout): Pair<Double, Double> {
|
||||
val rawResourcePair: Pair<Int, Int>
|
||||
YuzuApplication.appContext.resources.apply {
|
||||
CitronApplication.appContext.resources.apply {
|
||||
rawResourcePair = when (layout) {
|
||||
OverlayLayout.Landscape -> {
|
||||
Pair(
|
||||
|
||||
@@ -642,18 +642,18 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
|
||||
) { progressCallback, _ ->
|
||||
val checkStream =
|
||||
ZipInputStream(BufferedInputStream(contentResolver.openInputStream(result)))
|
||||
var isYuzuBackup = false
|
||||
var isCitronBackup = false
|
||||
checkStream.use { stream ->
|
||||
var ze: ZipEntry? = null
|
||||
while (stream.nextEntry?.also { ze = it } != null) {
|
||||
val itemName = ze!!.name.trim()
|
||||
if (itemName == "/config/config.ini" || itemName == "config/config.ini") {
|
||||
isYuzuBackup = true
|
||||
isCitronBackup = true
|
||||
return@use
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isYuzuBackup) {
|
||||
if (!isCitronBackup) {
|
||||
return@newInstance MessageDialogFragment.newInstance(
|
||||
this,
|
||||
titleId = R.string.invalid_citron_backup,
|
||||
|
||||
@@ -6,7 +6,7 @@ package org.citron.citron_emu.utils
|
||||
import androidx.preference.PreferenceManager
|
||||
import java.io.IOException
|
||||
import org.citron.citron_emu.NativeLibrary
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.features.settings.model.BooleanSetting
|
||||
import org.citron.citron_emu.features.settings.model.IntSetting
|
||||
import org.citron.citron_emu.features.settings.model.Settings
|
||||
@@ -38,7 +38,7 @@ object DirectoryInitialization {
|
||||
|
||||
private fun initializeInternalStorage() {
|
||||
try {
|
||||
userPath = YuzuApplication.appContext.getExternalFilesDir(null)!!.canonicalPath
|
||||
userPath = CitronApplication.appContext.getExternalFilesDir(null)!!.canonicalPath
|
||||
NativeLibrary.setAppDirectory(userPath!!)
|
||||
} catch (e: IOException) {
|
||||
e.printStackTrace()
|
||||
@@ -46,7 +46,7 @@ object DirectoryInitialization {
|
||||
}
|
||||
|
||||
private fun migrateSettings() {
|
||||
val preferences = PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
|
||||
val preferences = PreferenceManager.getDefaultSharedPreferences(CitronApplication.appContext)
|
||||
var saveConfig = false
|
||||
val theme = preferences.migratePreference<Int>(Settings.PREF_THEME)
|
||||
if (theme != null) {
|
||||
|
||||
@@ -14,7 +14,7 @@ import java.io.InputStream
|
||||
import java.net.URLDecoder
|
||||
import java.util.zip.ZipEntry
|
||||
import java.util.zip.ZipInputStream
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.model.MinimalDocumentFile
|
||||
import org.citron.citron_emu.model.TaskState
|
||||
import java.io.BufferedOutputStream
|
||||
@@ -31,7 +31,7 @@ object FileUtil {
|
||||
const val APPLICATION_OCTET_STREAM = "application/octet-stream"
|
||||
const val TEXT_PLAIN = "text/plain"
|
||||
|
||||
private val context get() = YuzuApplication.appContext
|
||||
private val context get() = CitronApplication.appContext
|
||||
|
||||
/**
|
||||
* Create a file from directory with filename.
|
||||
@@ -195,7 +195,7 @@ object FileUtil {
|
||||
* @return String display name
|
||||
*/
|
||||
fun getFilename(uri: Uri): String {
|
||||
val resolver = YuzuApplication.appContext.contentResolver
|
||||
val resolver = CitronApplication.appContext.contentResolver
|
||||
val columns = arrayOf(
|
||||
DocumentsContract.Document.COLUMN_DISPLAY_NAME
|
||||
)
|
||||
@@ -408,10 +408,10 @@ object FileUtil {
|
||||
val newFile = File(file, it.name!!)
|
||||
if (it.isDirectory) {
|
||||
newFile.mkdirs()
|
||||
DocumentFile.fromTreeUri(YuzuApplication.appContext, it.uri)?.copyFilesTo(newFile)
|
||||
DocumentFile.fromTreeUri(CitronApplication.appContext, it.uri)?.copyFilesTo(newFile)
|
||||
} else {
|
||||
val inputStream =
|
||||
YuzuApplication.appContext.contentResolver.openInputStream(it.uri)
|
||||
CitronApplication.appContext.contentResolver.openInputStream(it.uri)
|
||||
BufferedInputStream(inputStream).use { bos ->
|
||||
if (!newFile.exists()) {
|
||||
newFile.createNewFile()
|
||||
@@ -487,17 +487,17 @@ object FileUtil {
|
||||
String(stream.readBytes(), StandardCharsets.UTF_8)
|
||||
|
||||
fun DocumentFile.inputStream(): InputStream =
|
||||
YuzuApplication.appContext.contentResolver.openInputStream(uri)!!
|
||||
CitronApplication.appContext.contentResolver.openInputStream(uri)!!
|
||||
|
||||
fun DocumentFile.outputStream(): OutputStream =
|
||||
YuzuApplication.appContext.contentResolver.openOutputStream(uri)!!
|
||||
CitronApplication.appContext.contentResolver.openOutputStream(uri)!!
|
||||
|
||||
fun Uri.inputStream(): InputStream =
|
||||
YuzuApplication.appContext.contentResolver.openInputStream(this)!!
|
||||
CitronApplication.appContext.contentResolver.openInputStream(this)!!
|
||||
|
||||
fun Uri.outputStream(): OutputStream =
|
||||
YuzuApplication.appContext.contentResolver.openOutputStream(this)!!
|
||||
CitronApplication.appContext.contentResolver.openOutputStream(this)!!
|
||||
|
||||
fun Uri.asDocumentFile(): DocumentFile? =
|
||||
DocumentFile.fromSingleUri(YuzuApplication.appContext, this)
|
||||
DocumentFile.fromSingleUri(CitronApplication.appContext, this)
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import androidx.preference.PreferenceManager
|
||||
import kotlinx.serialization.encodeToString
|
||||
import kotlinx.serialization.json.Json
|
||||
import org.citron.citron_emu.NativeLibrary
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.model.Game
|
||||
import org.citron.citron_emu.model.GameDir
|
||||
import org.citron.citron_emu.model.MinimalDocumentFile
|
||||
@@ -22,7 +22,7 @@ object GameHelper {
|
||||
|
||||
fun getGames(): List<Game> {
|
||||
val games = mutableListOf<Game>()
|
||||
val context = YuzuApplication.appContext
|
||||
val context = CitronApplication.appContext
|
||||
preferences = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
|
||||
val gameDirs = mutableListOf<GameDir>()
|
||||
|
||||
@@ -22,7 +22,7 @@ import coil.memory.MemoryCache
|
||||
import coil.request.ImageRequest
|
||||
import coil.request.Options
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.model.Game
|
||||
|
||||
class GameIconFetcher(
|
||||
@@ -58,20 +58,20 @@ class GameIconKeyer : Keyer<Game> {
|
||||
}
|
||||
|
||||
object GameIconUtils {
|
||||
private val imageLoader = ImageLoader.Builder(YuzuApplication.appContext)
|
||||
private val imageLoader = ImageLoader.Builder(CitronApplication.appContext)
|
||||
.components {
|
||||
add(GameIconKeyer())
|
||||
add(GameIconFetcher.Factory())
|
||||
}
|
||||
.memoryCache {
|
||||
MemoryCache.Builder(YuzuApplication.appContext)
|
||||
MemoryCache.Builder(CitronApplication.appContext)
|
||||
.maxSizePercent(0.25)
|
||||
.build()
|
||||
}
|
||||
.build()
|
||||
|
||||
fun loadGameIcon(game: Game, imageView: ImageView) {
|
||||
val request = ImageRequest.Builder(YuzuApplication.appContext)
|
||||
val request = ImageRequest.Builder(CitronApplication.appContext)
|
||||
.data(game)
|
||||
.target(imageView)
|
||||
.error(R.drawable.default_icon)
|
||||
@@ -80,7 +80,7 @@ object GameIconUtils {
|
||||
}
|
||||
|
||||
suspend fun getGameIcon(lifecycleOwner: LifecycleOwner, game: Game): Bitmap {
|
||||
val request = ImageRequest.Builder(YuzuApplication.appContext)
|
||||
val request = ImageRequest.Builder(CitronApplication.appContext)
|
||||
.data(game)
|
||||
.lifecycle(lifecycleOwner)
|
||||
.error(R.drawable.default_icon)
|
||||
@@ -91,15 +91,15 @@ object GameIconUtils {
|
||||
|
||||
suspend fun getShortcutIcon(lifecycleOwner: LifecycleOwner, game: Game): IconCompat {
|
||||
val layerDrawable = ResourcesCompat.getDrawable(
|
||||
YuzuApplication.appContext.resources,
|
||||
CitronApplication.appContext.resources,
|
||||
R.drawable.shortcut,
|
||||
null
|
||||
) as LayerDrawable
|
||||
layerDrawable.setDrawableByLayerId(
|
||||
R.id.shortcut_foreground,
|
||||
getGameIcon(lifecycleOwner, game).toDrawable(YuzuApplication.appContext.resources)
|
||||
getGameIcon(lifecycleOwner, game).toDrawable(CitronApplication.appContext.resources)
|
||||
)
|
||||
val inset = YuzuApplication.appContext.resources
|
||||
val inset = CitronApplication.appContext.resources
|
||||
.getDimensionPixelSize(R.dimen.icon_inset)
|
||||
layerDrawable.setLayerInset(1, inset, inset, inset, inset)
|
||||
return IconCompat.createWithAdaptiveBitmap(
|
||||
|
||||
@@ -10,7 +10,7 @@ import android.view.Surface
|
||||
import java.io.File
|
||||
import java.io.IOException
|
||||
import org.citron.citron_emu.NativeLibrary
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import org.citron.citron_emu.features.settings.model.StringSetting
|
||||
import java.io.FileNotFoundException
|
||||
import java.util.zip.ZipException
|
||||
@@ -27,11 +27,11 @@ object GpuDriverHelper {
|
||||
fun initializeDriverParameters() {
|
||||
try {
|
||||
// Initialize the file redirection directory.
|
||||
fileRedirectionPath = YuzuApplication.appContext
|
||||
fileRedirectionPath = CitronApplication.appContext
|
||||
.getExternalFilesDir(null)!!.canonicalPath + "/gpu/vk_file_redirect/"
|
||||
|
||||
// Initialize the driver installation directory.
|
||||
driverInstallationPath = YuzuApplication.appContext
|
||||
driverInstallationPath = CitronApplication.appContext
|
||||
.filesDir.canonicalPath + "/gpu_driver/"
|
||||
} catch (e: IOException) {
|
||||
throw RuntimeException(e)
|
||||
@@ -41,7 +41,7 @@ object GpuDriverHelper {
|
||||
initializeDirectories()
|
||||
|
||||
// Initialize hook libraries directory.
|
||||
hookLibPath = YuzuApplication.appContext.applicationInfo.nativeLibraryDir + "/"
|
||||
hookLibPath = CitronApplication.appContext.applicationInfo.nativeLibraryDir + "/"
|
||||
|
||||
// Initialize GPU driver.
|
||||
NativeLibrary.initializeGpuDriver(
|
||||
|
||||
@@ -7,11 +7,11 @@ import android.view.InputDevice
|
||||
import android.view.KeyEvent
|
||||
import android.view.MotionEvent
|
||||
import org.citron.citron_emu.features.input.NativeInput
|
||||
import org.citron.citron_emu.features.input.YuzuInputOverlayDevice
|
||||
import org.citron.citron_emu.features.input.YuzuPhysicalDevice
|
||||
import org.citron.citron_emu.features.input.CitronInputOverlayDevice
|
||||
import org.citron.citron_emu.features.input.CitronPhysicalDevice
|
||||
|
||||
object InputHandler {
|
||||
var androidControllers = mapOf<Int, YuzuPhysicalDevice>()
|
||||
var androidControllers = mapOf<Int, CitronPhysicalDevice>()
|
||||
var registeredControllers = mutableListOf<ParamPackage>()
|
||||
|
||||
fun dispatchKeyEvent(event: KeyEvent): Boolean {
|
||||
@@ -50,8 +50,8 @@ object InputHandler {
|
||||
return true
|
||||
}
|
||||
|
||||
fun getDevices(): Map<Int, YuzuPhysicalDevice> {
|
||||
val gameControllerDeviceIds = mutableMapOf<Int, YuzuPhysicalDevice>()
|
||||
fun getDevices(): Map<Int, CitronPhysicalDevice> {
|
||||
val gameControllerDeviceIds = mutableMapOf<Int, CitronPhysicalDevice>()
|
||||
val deviceIds = InputDevice.getDeviceIds()
|
||||
var port = 0
|
||||
val inputSettings = NativeConfig.getInputSettings(true)
|
||||
@@ -62,7 +62,7 @@ object InputHandler {
|
||||
sources and InputDevice.SOURCE_JOYSTICK == InputDevice.SOURCE_JOYSTICK
|
||||
) {
|
||||
if (!gameControllerDeviceIds.contains(controllerNumber)) {
|
||||
gameControllerDeviceIds[controllerNumber] = YuzuPhysicalDevice(
|
||||
gameControllerDeviceIds[controllerNumber] = CitronPhysicalDevice(
|
||||
this,
|
||||
port,
|
||||
inputSettings[port].useSystemVibrator
|
||||
@@ -82,7 +82,7 @@ object InputHandler {
|
||||
}
|
||||
|
||||
// Register the input overlay on a dedicated port for all player 1 vibrations
|
||||
NativeInput.registerController(YuzuInputOverlayDevice(androidControllers.isEmpty(), 100))
|
||||
NativeInput.registerController(CitronInputOverlayDevice(androidControllers.isEmpty(), 100))
|
||||
registeredControllers.clear()
|
||||
NativeInput.getInputDevices().forEach {
|
||||
registeredControllers.add(ParamPackage(it))
|
||||
|
||||
@@ -7,12 +7,12 @@ import android.app.ActivityManager
|
||||
import android.content.Context
|
||||
import android.os.Build
|
||||
import org.citron.citron_emu.R
|
||||
import org.citron.citron_emu.YuzuApplication
|
||||
import org.citron.citron_emu.CitronApplication
|
||||
import java.util.Locale
|
||||
import kotlin.math.ceil
|
||||
|
||||
object MemoryUtil {
|
||||
private val context get() = YuzuApplication.appContext
|
||||
private val context get() = CitronApplication.appContext
|
||||
|
||||
private val Float.hundredths: String
|
||||
get() = String.format(Locale.ROOT, "%.2f", this)
|
||||
|
||||
@@ -23,12 +23,12 @@ object ThemeHelper {
|
||||
fun setTheme(activity: AppCompatActivity) {
|
||||
setThemeMode(activity)
|
||||
when (Theme.from(IntSetting.THEME.getInt())) {
|
||||
Theme.Default -> activity.setTheme(R.style.Theme_Yuzu_Main)
|
||||
Theme.Default -> activity.setTheme(R.style.Theme_Citron_Main)
|
||||
Theme.MaterialYou -> {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
activity.setTheme(R.style.Theme_Yuzu_Main_MaterialYou)
|
||||
activity.setTheme(R.style.Theme_Citron_Main_MaterialYou)
|
||||
} else {
|
||||
activity.setTheme(R.style.Theme_Yuzu_Main)
|
||||
activity.setTheme(R.style.Theme_Citron_Main)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -37,7 +37,7 @@ object ThemeHelper {
|
||||
// light app mode, dark system mode, and black backgrounds. Launching the settings activity
|
||||
// will then show light mode colors/navigation bars but with black backgrounds.
|
||||
if (BooleanSetting.BLACK_BACKGROUNDS.getBoolean() && isNightMode(activity)) {
|
||||
activity.setTheme(R.style.ThemeOverlay_Yuzu_Dark)
|
||||
activity.setTheme(R.style.ThemeOverlay_Citron_Dark)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -659,7 +659,7 @@ void Java_org_citron_citron_1emu_NativeLibrary_submitInlineKeyboardInput(JNIEnv*
|
||||
|
||||
void Java_org_citron_citron_1emu_NativeLibrary_initializeEmptyUserDirectory(JNIEnv* env,
|
||||
jobject instance) {
|
||||
const auto nand_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir);
|
||||
const auto nand_dir = Common::FS::GetCitronPath(Common::FS::CitronPath::NANDDir);
|
||||
auto vfs_nand_dir = EmulationSession::GetInstance().System().GetFilesystem()->OpenDirectory(
|
||||
Common::FS::PathToUTF8String(nand_dir), FileSys::OpenMode::Read);
|
||||
|
||||
@@ -831,7 +831,7 @@ jstring Java_org_citron_citron_1emu_NativeLibrary_getSavePath(JNIEnv* env, jobje
|
||||
const auto user_id = manager.GetUser(static_cast<std::size_t>(0));
|
||||
ASSERT(user_id);
|
||||
|
||||
const auto nandDir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir);
|
||||
const auto nandDir = Common::FS::GetCitronPath(Common::FS::CitronPath::NANDDir);
|
||||
auto vfsNandDir = system.GetFilesystem()->OpenDirectory(Common::FS::PathToUTF8String(nandDir),
|
||||
FileSys::OpenMode::Read);
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ bool IsProfileNameValid(std::string_view profile_name) {
|
||||
}
|
||||
|
||||
bool ProfileExistsInFilesystem(std::string_view profile_name) {
|
||||
return Common::FS::Exists(Common::FS::GetYuzuPath(Common::FS::YuzuPath::ConfigDir) / "input" /
|
||||
return Common::FS::Exists(Common::FS::GetCitronPath(Common::FS::CitronPath::ConfigDir) / "input" /
|
||||
fmt::format("{}.ini", profile_name));
|
||||
}
|
||||
|
||||
@@ -304,7 +304,7 @@ void Java_org_citron_citron_1emu_features_input_NativeInput_loadInputProfiles(JN
|
||||
jobject j_obj) {
|
||||
map_profiles.clear();
|
||||
const auto input_profile_loc =
|
||||
Common::FS::GetYuzuPath(Common::FS::YuzuPath::ConfigDir) / "input";
|
||||
Common::FS::GetCitronPath(Common::FS::CitronPath::ConfigDir) / "input";
|
||||
|
||||
if (Common::FS::IsDir(input_profile_loc)) {
|
||||
Common::FS::IterateDirEntries(
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
<string name="install_game_content_help_link">https://citron-emu.org/help/quickstart/#dumping-installed-updates</string>
|
||||
<string name="custom_driver_not_supported">Driver kustom tidak didukung</string>
|
||||
<string name="custom_driver_not_supported_description">Driver kustom saat ini tidak dapat digunakan pada perangkat ini. \nCek opsi ini lain waktu untuk mengetahui apakah dapat digunakan!</string>
|
||||
<string name="manage_citron_data">Kelola data Yuzu.</string>
|
||||
<string name="manage_citron_data">Kelola data Citron.</string>
|
||||
<string name="manage_citron_data_description">Impor/expor firmware, key, data pengguna, dan sebagainya!</string>
|
||||
<string name="share_save_file">Bagikan file simpanan.</string>
|
||||
<string name="export_save_failed">Gagal mengekspor simpanan.</string>
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
<string name="install_game_content_help_link">https://citron-emu.org/help/quickstart/#dumping-installed-updates</string>
|
||||
<string name="custom_driver_not_supported">I driver personalizzati non sono supportati.</string>
|
||||
<string name="custom_driver_not_supported_description">I driver personalizzati non sono attualmente supportati su questo dispositivo.\n Ricontrolla in futuro.</string>
|
||||
<string name="manage_citron_data">Gestisci i dati di Yuzu</string>
|
||||
<string name="manage_citron_data">Gestisci i dati di Citron</string>
|
||||
<string name="manage_citron_data_description">Importa/Esporta il firmware, le keys, i dati utente, e altro!</string>
|
||||
<string name="share_save_file">Condividi i tuoi dati di salvataggio</string>
|
||||
<string name="export_save_failed">Errore durante l\'esportazione del salvataggio</string>
|
||||
@@ -163,7 +163,7 @@
|
||||
<string name="exporting_user_data">Esportazione dei Dati Utente...</string>
|
||||
<string name="importing_user_data">Importazione dei Dati Utente...</string>
|
||||
<string name="import_user_data">Importa i Dati Utente</string>
|
||||
<string name="invalid_citron_backup">Backup di Yuzu Invalido</string>
|
||||
<string name="invalid_citron_backup">Backup di Citron Invalido</string>
|
||||
<string name="user_data_export_success">Dati Utente esportati con successo</string>
|
||||
<string name="user_data_import_success">Dati Utente importati con successo.</string>
|
||||
<string name="user_data_export_cancelled">Esportazione annullata</string>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<style name="Theme.Yuzu.Main.MaterialYou" parent="Theme.Yuzu.Main">
|
||||
<style name="Theme.Citron.Main.MaterialYou" parent="Theme.Citron.Main">
|
||||
<item name="colorPrimary">@color/m3_sys_color_dynamic_dark_primary</item>
|
||||
<item name="colorOnPrimary">@color/m3_sys_color_dynamic_dark_on_primary</item>
|
||||
<item name="colorPrimaryContainer">@color/m3_sys_color_dynamic_dark_primary_container</item>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<style name="ThemeOverlay.Yuzu.Dark" parent="">
|
||||
<style name="ThemeOverlay.Citron.Dark" parent="">
|
||||
<item name="colorSurface">@android:color/black</item>
|
||||
<item name="android:colorBackground">@android:color/black</item>
|
||||
</style>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<string name="search_and_filter_games">Procura e filtra jogos</string>
|
||||
<string name="select_games_folder">Seleciona a pasta de jogos</string>
|
||||
<string name="manage_game_folders">Gerenciar pastas de jogos</string>
|
||||
<string name="select_games_folder_description">Permite que o Yuzu preencha a lista de jogos</string>
|
||||
<string name="select_games_folder_description">Permite que o Citron preencha a lista de jogos</string>
|
||||
<string name="add_games_warning">Ignorar a seleção da pasta de jogos?</string>
|
||||
<string name="add_games_warning_description">Os jogos não serão exibidos na lista de jogos se uma pasta não estiver selecionada.</string>
|
||||
<string name="add_games_warning_help">https://citron-emu.org/help/quickstart/#dumping-games</string>
|
||||
@@ -48,7 +48,7 @@
|
||||
<string name="notifications_description">Conceda a permissão de notificação com o botão abaixo.</string>
|
||||
<string name="give_permission">Conceder permissão</string>
|
||||
<string name="notification_warning">Ignorar a concessão da permissão de notificação?</string>
|
||||
<string name="notification_warning_description">O Yuzu não irá te notificar de informações importantes. </string>
|
||||
<string name="notification_warning_description">O Citron não irá te notificar de informações importantes. </string>
|
||||
<string name="permission_denied">Permissão negada</string>
|
||||
<string name="permission_denied_description">Você negou essa permissão muitas vezes e agora precisa concedê-la manualmente nas configurações do sistema.</string>
|
||||
<string name="about">Sobre</string>
|
||||
@@ -76,11 +76,11 @@
|
||||
<string name="search_recently_added">Adicionado recentemente</string>
|
||||
<string name="search_retail">Jogos comerciais</string>
|
||||
<string name="search_homebrew">Homebrew</string>
|
||||
<string name="open_user_folder">Abrir a pasta do Yuzu</string>
|
||||
<string name="open_user_folder_description">Gerencie os arquivos internos do Yuzu</string>
|
||||
<string name="open_user_folder">Abrir a pasta do Citron</string>
|
||||
<string name="open_user_folder_description">Gerencie os arquivos internos do Citron</string>
|
||||
<string name="theme_and_color_description">Altere a aparência do aplicativo</string>
|
||||
<string name="no_file_manager">Nenhum gerenciador de arquivos encontrado</string>
|
||||
<string name="notification_no_directory_link">Não foi possível abrir a pasta do Yuzu</string>
|
||||
<string name="notification_no_directory_link">Não foi possível abrir a pasta do Citron</string>
|
||||
<string name="notification_no_directory_link_description">Por favor localize manualmente a pasta do usuário, com o painel lateral do gerenciador de arquivos.</string>
|
||||
<string name="manage_save_data">Gerenciar os dados salvos dos jogos</string>
|
||||
<string name="manage_save_data_description">Dados salvos encontrados. Por favor selecione uma opção abaixo.</string>
|
||||
@@ -166,7 +166,7 @@
|
||||
<string name="copied_to_clipboard">Copiado para a área de transferência</string>
|
||||
<string name="about_app_description">Um emulador de Switch de código aberto</string>
|
||||
<string name="contributors">Colaboradores</string>
|
||||
<string name="contributors_description">Feito com \u2764 da equipe do Yuzu</string>
|
||||
<string name="contributors_description">Feito com \u2764 da equipe do Citron</string>
|
||||
<string name="contributors_link">https://github.com/citron-emu/citron/graphs/contributors</string>
|
||||
<string name="licenses_description">Projetos que tornam o citron para Android possível</string>
|
||||
<string name="build">Versão da Compilação</string>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<string name="search_and_filter_games">Procura e filtra jogos.</string>
|
||||
<string name="select_games_folder">Seleciona a pasta de jogos.</string>
|
||||
<string name="manage_game_folders">Gerencie as pastas de jogos</string>
|
||||
<string name="select_games_folder_description">Permite que o Yuzu preencha a lista de jogos</string>
|
||||
<string name="select_games_folder_description">Permite que o Citron preencha a lista de jogos</string>
|
||||
<string name="add_games_warning">Ignorar a seleção da pasta de jogos?</string>
|
||||
<string name="add_games_warning_description">Os jogos não serão exibidos na lista de jogos se uma pasta não estiver selecionada.</string>
|
||||
<string name="add_games_warning_help">https://citron-emu.org/help/quickstart/#dumping-games</string>
|
||||
@@ -48,7 +48,7 @@
|
||||
<string name="notifications_description">Conceda a permissão de notificação com o botão abaixo.</string>
|
||||
<string name="give_permission">Conceda permissão</string>
|
||||
<string name="notification_warning">Saltar a concessão da permissão de notificação?</string>
|
||||
<string name="notification_warning_description">Yuzu não conseguirá te notificar de informações importantes. </string>
|
||||
<string name="notification_warning_description">Citron não conseguirá te notificar de informações importantes. </string>
|
||||
<string name="permission_denied">Permissão negada</string>
|
||||
<string name="permission_denied_description">Você negou essa permissão muitas vezes e agora precisa concedê-la manualmente nas configurações do sistema.</string>
|
||||
<string name="about">Sobre</string>
|
||||
@@ -76,11 +76,11 @@
|
||||
<string name="search_recently_added">Adicionado recentemente</string>
|
||||
<string name="search_retail">Jogos comerciais</string>
|
||||
<string name="search_homebrew">Homebrew</string>
|
||||
<string name="open_user_folder">Abre a pasta Yuzu</string>
|
||||
<string name="open_user_folder_description">Gere os ficheiro internos do Yuzu</string>
|
||||
<string name="open_user_folder">Abre a pasta Citron</string>
|
||||
<string name="open_user_folder_description">Gere os ficheiro internos do Citron</string>
|
||||
<string name="theme_and_color_description">Modifica a aparência da App</string>
|
||||
<string name="no_file_manager">Nenhum gestor de ficheiros encontrado</string>
|
||||
<string name="notification_no_directory_link">Impossível abrir pasta Yuzu</string>
|
||||
<string name="notification_no_directory_link">Impossível abrir pasta Citron</string>
|
||||
<string name="notification_no_directory_link_description">Localiza a pasta de utilizador manualmente com o painel lateral do gestor de ficheiros.</string>
|
||||
<string name="manage_save_data">Gerir dados guardados</string>
|
||||
<string name="manage_save_data_description">Dados não encontrados. Por favor seleciona uma opção abaixo.</string>
|
||||
@@ -166,7 +166,7 @@
|
||||
<string name="copied_to_clipboard">Copiado para a área de transferência</string>
|
||||
<string name="about_app_description">Um emulador Switch de código aberto</string>
|
||||
<string name="contributors">Contribuidores</string>
|
||||
<string name="contributors_description">Feito com \u2764 da equipa do Yuzu</string>
|
||||
<string name="contributors_description">Feito com \u2764 da equipa do Citron</string>
|
||||
<string name="contributors_link">https://github.com/citron-emu/citron/graphs/contributors</string>
|
||||
<string name="licenses_description">Projetos que tornam o citron para Android possível</string>
|
||||
<string name="build">Versão</string>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<style name="Theme.Yuzu.Main.MaterialYou" parent="Theme.Yuzu.Main">
|
||||
<style name="Theme.Citron.Main.MaterialYou" parent="Theme.Citron.Main">
|
||||
<item name="colorPrimary">@color/m3_sys_color_dynamic_light_primary</item>
|
||||
<item name="colorOnPrimary">@color/m3_sys_color_dynamic_light_on_primary</item>
|
||||
<item name="colorPrimaryContainer">@color/m3_sys_color_dynamic_light_primary_container</item>
|
||||
|
||||
@@ -13,22 +13,22 @@
|
||||
<item name="android:paddingRight">32dp</item>
|
||||
</style>
|
||||
|
||||
<style name="YuzuSlider" parent="Widget.Material3.Slider">
|
||||
<style name="CitronSlider" parent="Widget.Material3.Slider">
|
||||
<item name="tickVisible">false</item>
|
||||
<item name="labelBehavior">gone</item>
|
||||
</style>
|
||||
|
||||
<style name="YuzuMaterialDialog" parent="ThemeOverlay.Material3.MaterialAlertDialog">
|
||||
<style name="CitronMaterialDialog" parent="ThemeOverlay.Material3.MaterialAlertDialog">
|
||||
<item name="colorPrimary">@color/citron_primaryContainer</item>
|
||||
<item name="colorSurface">@color/citron_primaryContainer</item>
|
||||
<item name="colorSecondary">@color/citron_primary</item>
|
||||
<item name="android:textColorLink">@color/citron_primary</item>
|
||||
<item name="buttonBarPositiveButtonStyle">@style/YuzuButton</item>
|
||||
<item name="buttonBarNegativeButtonStyle">@style/YuzuButton</item>
|
||||
<item name="buttonBarNeutralButtonStyle">@style/YuzuButton</item>
|
||||
<item name="buttonBarPositiveButtonStyle">@style/CitronButton</item>
|
||||
<item name="buttonBarNegativeButtonStyle">@style/CitronButton</item>
|
||||
<item name="buttonBarNeutralButtonStyle">@style/CitronButton</item>
|
||||
</style>
|
||||
|
||||
<style name="YuzuButton" parent="Widget.Material3.Button.TextButton.Dialog">
|
||||
<style name="CitronButton" parent="Widget.Material3.Button.TextButton.Dialog">
|
||||
<item name="android:textColor">@color/citron_primary</item>
|
||||
<item name="rippleColor">@color/citron_inversePrimary</item>
|
||||
</style>
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<style name="Theme.Yuzu.Splash.Main" parent="Theme.SplashScreen">
|
||||
<style name="Theme.Citron.Splash.Main" parent="Theme.SplashScreen">
|
||||
<item name="windowSplashScreenBackground">@color/citron_surface</item>
|
||||
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_citron</item>
|
||||
<item name="postSplashScreenTheme">@style/Theme.Yuzu.Main</item>
|
||||
<item name="postSplashScreenTheme">@style/Theme.Citron.Main</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Yuzu.Main" parent="Theme.Material3.DayNight.NoActionBar">
|
||||
<style name="Theme.Citron.Main" parent="Theme.Material3.DayNight.NoActionBar">
|
||||
<item name="colorPrimary">@color/citron_primary</item>
|
||||
<item name="colorOnPrimary">@color/citron_onPrimary</item>
|
||||
<item name="colorPrimaryContainer">@color/citron_primaryContainer</item>
|
||||
@@ -39,8 +39,8 @@
|
||||
<item name="android:statusBarColor">@android:color/transparent</item>
|
||||
<item name="android:navigationBarColor">@android:color/transparent</item>
|
||||
|
||||
<item name="sliderStyle">@style/YuzuSlider</item>
|
||||
<item name="materialAlertDialogTheme">@style/YuzuMaterialDialog</item>
|
||||
<item name="sliderStyle">@style/CitronSlider</item>
|
||||
<item name="materialAlertDialogTheme">@style/CitronMaterialDialog</item>
|
||||
|
||||
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user