Update title manager

This commit is contained in:
SSimco
2025-08-26 13:07:16 +03:00
parent 71a0504691
commit 91ce31ca9f
70 changed files with 667 additions and 555 deletions
@@ -1,9 +1,9 @@
package info.cemu.cemu
import android.app.Application
import info.cemu.cemu.common.context.internalFolder
import info.cemu.cemu.common.translation.setLanguage
import info.cemu.cemu.common.translation.setTranslations
import info.cemu.cemu.common.android.context.internalFolder
import info.cemu.cemu.common.ui.localization.setLanguage
import info.cemu.cemu.common.ui.localization.setTranslations
import info.cemu.cemu.nativeinterface.NativeActiveSettings.initializeActiveSettings
import info.cemu.cemu.nativeinterface.NativeActiveSettings.setInternalDir
import info.cemu.cemu.nativeinterface.NativeActiveSettings.setNativeLibDir
@@ -34,9 +34,9 @@ import androidx.navigation.compose.NavHost
import androidx.navigation.compose.rememberNavController
import info.cemu.cemu.about.AboutCemuRoute
import info.cemu.cemu.about.aboutCemuNavigation
import info.cemu.cemu.common.components.ActivityContent
import info.cemu.cemu.common.translation.TranslatableContent
import info.cemu.cemu.common.translation.tr
import info.cemu.cemu.common.ui.components.ActivityContent
import info.cemu.cemu.common.ui.localization.TranslatableContent
import info.cemu.cemu.common.ui.localization.tr
import info.cemu.cemu.emulation.EmulationActivity
import info.cemu.cemu.gamelist.GameListRoute
import info.cemu.cemu.gamelist.gameListNavigation
@@ -39,8 +39,8 @@ import com.mikepenz.aboutlibraries.ui.compose.m3.libraryColors
import com.mikepenz.aboutlibraries.ui.compose.util.author
import info.cemu.cemu.BuildConfig
import info.cemu.cemu.R
import info.cemu.cemu.common.components.ScreenContentLazy
import info.cemu.cemu.common.translation.tr
import info.cemu.cemu.common.ui.components.ScreenContentLazy
import info.cemu.cemu.common.ui.localization.tr
import kotlinx.collections.immutable.persistentListOf
typealias AboutLibrary = com.mikepenz.aboutlibraries.entity.Library
@@ -0,0 +1,56 @@
package info.cemu.cemu.common.android.contentresolver
import android.content.ContentResolver
import android.net.Uri
import android.provider.DocumentsContract
import kotlinx.coroutines.yield
sealed class DocumentEntry {
data class File(val uri: Uri, val size: Long) : DocumentEntry()
data class Directory(val uri: Uri) : DocumentEntry()
}
suspend fun ContentResolver.walkDocumentTree(
dirUri: Uri,
onEntry: (DocumentEntry) -> Unit,
) {
val childrenUri = DocumentsContract.buildChildDocumentsUriUsingTree(
dirUri,
DocumentsContract.getDocumentId(dirUri)
)
val cursor = query(
childrenUri,
arrayOf(
DocumentsContract.Document.COLUMN_DOCUMENT_ID,
DocumentsContract.Document.COLUMN_SIZE,
DocumentsContract.Document.COLUMN_MIME_TYPE,
),
null,
null,
null
)
cursor?.use {
while (it.moveToNext()) {
yield()
val documentId = it.getString(0)
val documentUri = DocumentsContract.buildDocumentUriUsingTree(dirUri, documentId)
val mimeType = it.getString(2)
if (mimeType != DocumentsContract.Document.MIME_TYPE_DIR) {
val sizeInBytes = it.getLong(1)
onEntry(DocumentEntry.File(documentUri, sizeInBytes))
continue
}
onEntry(DocumentEntry.Directory(documentUri))
walkDocumentTree(
DocumentsContract.buildDocumentUriUsingTree(dirUri, documentId),
onEntry,
)
}
}
}
@@ -1,4 +1,4 @@
package info.cemu.cemu.common.context
package info.cemu.cemu.common.android.context
import android.content.Context
import java.io.File
@@ -1,4 +1,4 @@
package info.cemu.cemu.common.inputdevice
package info.cemu.cemu.common.android.inputdevice
import android.view.InputDevice
@@ -1,4 +1,4 @@
package info.cemu.cemu.common.motionevent
package info.cemu.cemu.common.android.motionevent
import android.view.InputDevice
import android.view.MotionEvent
@@ -0,0 +1,6 @@
package info.cemu.cemu.common.collections
fun <T> Set<T>.toggleInSet(item: T): Set<T> {
return if (item in this) this - item else this + item
}
@@ -1,16 +0,0 @@
package info.cemu.cemu.common.nativeenummapper
import info.cemu.cemu.common.translation.tr
import info.cemu.cemu.nativeinterface.NativeGameTitles.ConsoleRegion
fun regionToString(region: Int): String = when (region) {
ConsoleRegion.JPN -> tr("Japan")
ConsoleRegion.USA -> tr("USA")
ConsoleRegion.EUR -> tr("Europe")
ConsoleRegion.AUS_DEPR -> tr("Australia")
ConsoleRegion.CHN -> tr("China")
ConsoleRegion.KOR -> tr("Korea")
ConsoleRegion.TWN -> tr("Taiwan")
ConsoleRegion.AUTO -> tr("Auto")
else -> tr("Many")
}
@@ -1,13 +0,0 @@
package info.cemu.cemu.common.nativeenummapper
import info.cemu.cemu.common.translation.tr
import info.cemu.cemu.nativeinterface.NativeInput.EmulatedControllerType
fun controllerTypeToString(type: Int) = when (type) {
EmulatedControllerType.DISABLED -> tr("Disabled")
EmulatedControllerType.VPAD -> tr("Wii U GamePad")
EmulatedControllerType.PRO -> tr("Wii U Pro Controller")
EmulatedControllerType.WIIMOTE -> tr("Wiimote")
EmulatedControllerType.CLASSIC -> tr("Wii U Classic Controller")
else -> throw IllegalArgumentException("Invalid controller type: $type")
}
@@ -2,7 +2,7 @@ package info.cemu.cemu.common.settings
import android.content.Context
import android.content.SharedPreferences
import info.cemu.cemu.common.translation.DEFAULT_LANGUAGE
import info.cemu.cemu.common.ui.localization.DEFAULT_LANGUAGE
import kotlin.getValue
class EmulationScreenSettings(sharedPreferences: SharedPreferences) {
@@ -8,11 +8,10 @@ fun String.toIntOrZero() = toIntOrNull() ?: 0
fun String.isContentUri() = startsWith("content://")
fun String.parseHexOrNull(): UInt? {
return try {
toUInt(16)
} catch (_: NumberFormatException) {
null
}
}
}
@@ -1,11 +1,11 @@
package info.cemu.cemu.common.components
package info.cemu.cemu.common.ui.components
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import info.cemu.cemu.common.theme.CemuTheme
import info.cemu.cemu.common.ui.theme.CemuTheme
@Composable
fun ActivityContent(content: @Composable () -> Unit) {
@@ -1,4 +1,4 @@
package info.cemu.cemu.common.components
package info.cemu.cemu.common.ui.components
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
@@ -1,4 +1,4 @@
package info.cemu.cemu.common.format
package info.cemu.cemu.common.ui.components
import android.text.format.Formatter
import androidx.compose.runtime.Composable
@@ -1,4 +1,4 @@
package info.cemu.cemu.common.components
package info.cemu.cemu.common.ui.components
import android.content.Context
import android.util.AttributeSet
@@ -1,4 +1,4 @@
package info.cemu.cemu.common.components
package info.cemu.cemu.common.ui.components
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.IntrinsicSize
@@ -1,4 +1,4 @@
package info.cemu.cemu.common.components
package info.cemu.cemu.common.ui.components
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Text
@@ -1,6 +1,6 @@
@file:OptIn(ExperimentalMaterial3Api::class)
package info.cemu.cemu.common.components
package info.cemu.cemu.common.ui.components
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
@@ -1,4 +1,4 @@
package info.cemu.cemu.common.components
package info.cemu.cemu.common.ui.components
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
@@ -30,7 +30,7 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.window.Dialog
import info.cemu.cemu.common.translation.tr
import info.cemu.cemu.common.ui.localization.tr
@Composable
fun SingleSelection(

Some files were not shown because too many files have changed in this diff Show More