diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0532e0b4..151fd648 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -38,7 +38,7 @@ @@ -47,7 +47,7 @@ diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/DebugSection.kt b/app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/DebugSection.kt deleted file mode 100644 index b9b0f606..00000000 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/DebugSection.kt +++ /dev/null @@ -1,4 +0,0 @@ -package me.rhunk.snapenhance.manager.sections - -class DebugSection { -} \ No newline at end of file diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/Theme.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/Theme.kt similarity index 99% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/Theme.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/Theme.kt index eedc6b14..a03cef8e 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/Theme.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/Theme.kt @@ -1,4 +1,4 @@ -package me.rhunk.snapenhance.manager +package me.rhunk.snapenhance.ui import android.os.Build import androidx.compose.foundation.isSystemInDarkTheme diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/MainActivity.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/MainActivity.kt similarity index 91% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/MainActivity.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/MainActivity.kt index 4f81103b..7befc61a 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/MainActivity.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/MainActivity.kt @@ -1,4 +1,4 @@ -package me.rhunk.snapenhance.manager +package me.rhunk.snapenhance.ui.manager import android.annotation.SuppressLint import android.os.Bundle @@ -7,8 +7,8 @@ import androidx.activity.compose.setContent import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.navigation.compose.rememberNavController -import me.rhunk.snapenhance.manager.data.ManagerContext -import me.rhunk.snapenhance.manager.util.SaveFolderChecker +import me.rhunk.snapenhance.ui.AppMaterialTheme +import me.rhunk.snapenhance.ui.manager.util.SaveFolderChecker import me.rhunk.snapenhance.util.ActivityResultCallback class MainActivity : ComponentActivity() { diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/data/ManagerContext.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/ManagerContext.kt similarity index 75% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/data/ManagerContext.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/ManagerContext.kt index c8643a7c..42166d26 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/data/ManagerContext.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/ManagerContext.kt @@ -1,15 +1,18 @@ -package me.rhunk.snapenhance.manager.data +package me.rhunk.snapenhance.ui.manager import android.content.Context import me.rhunk.snapenhance.bridge.wrapper.MappingsWrapper -import me.rhunk.snapenhance.bridge.wrapper.TranslationWrapper +import me.rhunk.snapenhance.bridge.wrapper.LocaleWrapper import me.rhunk.snapenhance.core.config.ModConfig +import me.rhunk.snapenhance.ui.manager.data.InstallationSummary +import me.rhunk.snapenhance.ui.manager.data.ModMappingsInfo +import me.rhunk.snapenhance.ui.manager.data.SnapchatAppInfo class ManagerContext( private val context: Context ) { val config = ModConfig() - val translation = TranslationWrapper() + val translation = LocaleWrapper() val mappings = MappingsWrapper(context) init { diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/Navigation.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/Navigation.kt similarity index 97% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/Navigation.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/Navigation.kt index e432aa53..e6cbdce4 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/Navigation.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/Navigation.kt @@ -1,4 +1,4 @@ -package me.rhunk.snapenhance.manager +package me.rhunk.snapenhance.ui.manager import androidx.compose.animation.core.animateDpAsState import androidx.compose.foundation.layout.PaddingValues @@ -21,7 +21,6 @@ import androidx.navigation.NavGraph.Companion.findStartDestination import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost import androidx.navigation.compose.currentBackStackEntryAsState -import me.rhunk.snapenhance.manager.data.ManagerContext class Navigation( diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/Section.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/Section.kt similarity index 86% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/Section.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/Section.kt index ab9d338c..064e51dd 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/Section.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/Section.kt @@ -1,4 +1,4 @@ -package me.rhunk.snapenhance.manager +package me.rhunk.snapenhance.ui.manager import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.BugReport @@ -11,10 +11,9 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder import androidx.navigation.compose.composable -import me.rhunk.snapenhance.manager.data.ManagerContext -import me.rhunk.snapenhance.manager.sections.HomeSection -import me.rhunk.snapenhance.manager.sections.NotImplemented -import me.rhunk.snapenhance.manager.sections.features.FeaturesSection +import me.rhunk.snapenhance.ui.manager.sections.HomeSection +import me.rhunk.snapenhance.ui.manager.sections.NotImplemented +import me.rhunk.snapenhance.ui.manager.sections.features.FeaturesSection import kotlin.reflect.KClass enum class EnumSection( diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/data/InstallationSummary.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/data/InstallationSummary.kt similarity index 86% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/data/InstallationSummary.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/data/InstallationSummary.kt index f7b0150d..a5dcfd22 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/data/InstallationSummary.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/data/InstallationSummary.kt @@ -1,4 +1,4 @@ -package me.rhunk.snapenhance.manager.data +package me.rhunk.snapenhance.ui.manager.data data class SnapchatAppInfo( diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/DebugSection.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/DebugSection.kt new file mode 100644 index 00000000..e37e169d --- /dev/null +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/DebugSection.kt @@ -0,0 +1,4 @@ +package me.rhunk.snapenhance.ui.manager.sections + +class DebugSection { +} \ No newline at end of file diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/HomeSection.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/HomeSection.kt similarity index 96% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/HomeSection.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/HomeSection.kt index 5e89be9b..e493a30c 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/HomeSection.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/HomeSection.kt @@ -1,4 +1,4 @@ -package me.rhunk.snapenhance.manager.sections +package me.rhunk.snapenhance.ui.manager.sections import androidx.compose.foundation.ScrollState import androidx.compose.foundation.layout.Arrangement @@ -23,8 +23,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import me.rhunk.snapenhance.manager.Section -import me.rhunk.snapenhance.manager.data.InstallationSummary +import me.rhunk.snapenhance.ui.manager.Section +import me.rhunk.snapenhance.ui.manager.data.InstallationSummary class HomeSection : Section() { companion object { diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/NotImplemented.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/NotImplemented.kt similarity index 75% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/NotImplemented.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/NotImplemented.kt index be57ff21..83bceda9 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/NotImplemented.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/NotImplemented.kt @@ -1,9 +1,9 @@ -package me.rhunk.snapenhance.manager.sections +package me.rhunk.snapenhance.ui.manager.sections import androidx.compose.foundation.layout.Column import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import me.rhunk.snapenhance.manager.Section +import me.rhunk.snapenhance.ui.manager.Section class NotImplemented : Section() { @Composable diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/features/CallbackAlias.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/features/CallbackAlias.kt similarity index 65% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/features/CallbackAlias.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/features/CallbackAlias.kt index 9e93b545..d56e3979 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/features/CallbackAlias.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/features/CallbackAlias.kt @@ -1,4 +1,4 @@ -package me.rhunk.snapenhance.manager.sections.features +package me.rhunk.snapenhance.ui.manager.sections.features typealias ClickCallback = (Boolean) -> Unit typealias RegisterClickCallback = (ClickCallback) -> ClickCallback \ No newline at end of file diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/features/Dialogs.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/features/Dialogs.kt similarity index 99% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/features/Dialogs.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/features/Dialogs.kt index 336ac8cd..6958666c 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/features/Dialogs.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/features/Dialogs.kt @@ -1,4 +1,4 @@ -package me.rhunk.snapenhance.manager.sections.features +package me.rhunk.snapenhance.ui.manager.sections.features import androidx.compose.foundation.ScrollState import androidx.compose.foundation.clickable diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/features/FeaturesSection.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/features/FeaturesSection.kt similarity index 99% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/features/FeaturesSection.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/features/FeaturesSection.kt index 99fdff4b..e619dc78 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/sections/features/FeaturesSection.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/features/FeaturesSection.kt @@ -1,4 +1,4 @@ -package me.rhunk.snapenhance.manager.sections.features +package me.rhunk.snapenhance.ui.manager.sections.features import androidx.compose.foundation.background import androidx.compose.foundation.clickable @@ -54,7 +54,7 @@ import kotlinx.coroutines.launch import me.rhunk.snapenhance.core.config.ConfigContainer import me.rhunk.snapenhance.core.config.DataProcessors import me.rhunk.snapenhance.core.config.PropertyPair -import me.rhunk.snapenhance.manager.Section +import me.rhunk.snapenhance.ui.manager.Section class FeaturesSection : Section() { private val dialogs by lazy { Dialogs() } diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/util/SaveFolderChecker.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/util/SaveFolderChecker.kt similarity index 97% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/util/SaveFolderChecker.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/util/SaveFolderChecker.kt index 47601295..952b1997 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/util/SaveFolderChecker.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/util/SaveFolderChecker.kt @@ -1,4 +1,4 @@ -package me.rhunk.snapenhance.manager.util +package me.rhunk.snapenhance.ui.manager.util import android.app.Activity import android.app.AlertDialog diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/Requirements.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/Requirements.kt similarity index 96% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/Requirements.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/Requirements.kt index a9c9e98c..00121d12 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/Requirements.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/Requirements.kt @@ -1,4 +1,4 @@ -package me.rhunk.snapenhance.manager.setup +package me.rhunk.snapenhance.ui.setup import android.os.Bundle diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/SetupActivity.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/SetupActivity.kt similarity index 91% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/SetupActivity.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/SetupActivity.kt index 6a91b192..046d1392 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/SetupActivity.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/SetupActivity.kt @@ -1,4 +1,4 @@ -package me.rhunk.snapenhance.manager.setup +package me.rhunk.snapenhance.ui.setup import android.os.Bundle import androidx.activity.ComponentActivity @@ -28,13 +28,13 @@ import androidx.compose.ui.unit.dp import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController -import me.rhunk.snapenhance.manager.AppMaterialTheme -import me.rhunk.snapenhance.manager.setup.screens.SetupScreen -import me.rhunk.snapenhance.manager.setup.screens.impl.FfmpegScreen -import me.rhunk.snapenhance.manager.setup.screens.impl.LanguageScreen -import me.rhunk.snapenhance.manager.setup.screens.impl.MappingsScreen -import me.rhunk.snapenhance.manager.setup.screens.impl.SaveFolderScreen -import me.rhunk.snapenhance.manager.setup.screens.impl.WelcomeScreen +import me.rhunk.snapenhance.ui.AppMaterialTheme +import me.rhunk.snapenhance.ui.setup.screens.SetupScreen +import me.rhunk.snapenhance.ui.setup.screens.impl.FfmpegScreen +import me.rhunk.snapenhance.ui.setup.screens.impl.LanguageScreen +import me.rhunk.snapenhance.ui.setup.screens.impl.MappingsScreen +import me.rhunk.snapenhance.ui.setup.screens.impl.SaveFolderScreen +import me.rhunk.snapenhance.ui.setup.screens.impl.WelcomeScreen class SetupActivity : ComponentActivity() { diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/SetupContext.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/SetupContext.kt new file mode 100644 index 00000000..022761ba --- /dev/null +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/SetupContext.kt @@ -0,0 +1,14 @@ +package me.rhunk.snapenhance.ui.setup + +import android.content.Context +import me.rhunk.snapenhance.core.config.ModConfig + +class SetupContext( + private val context: Context +) { + val config = ModConfig() + + init { + config.loadFromContext(context) + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/SetupScreen.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/SetupScreen.kt similarity index 79% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/SetupScreen.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/SetupScreen.kt index d1600f8d..1acdc3b1 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/SetupScreen.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/SetupScreen.kt @@ -1,4 +1,4 @@ -package me.rhunk.snapenhance.manager.setup.screens +package me.rhunk.snapenhance.ui.setup.screens import androidx.compose.runtime.Composable diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/impl/FfmpegScreen.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/impl/FfmpegScreen.kt similarity index 73% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/impl/FfmpegScreen.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/impl/FfmpegScreen.kt index 3e9693b6..000a5f4b 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/impl/FfmpegScreen.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/impl/FfmpegScreen.kt @@ -1,9 +1,9 @@ -package me.rhunk.snapenhance.manager.setup.screens.impl +package me.rhunk.snapenhance.ui.setup.screens.impl import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import me.rhunk.snapenhance.manager.setup.screens.SetupScreen +import me.rhunk.snapenhance.ui.setup.screens.SetupScreen class FfmpegScreen : SetupScreen() { diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/impl/LanguageScreen.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/impl/LanguageScreen.kt similarity index 53% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/impl/LanguageScreen.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/impl/LanguageScreen.kt index f574b115..e5eeaccd 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/impl/LanguageScreen.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/impl/LanguageScreen.kt @@ -1,10 +1,9 @@ -package me.rhunk.snapenhance.manager.setup.screens.impl +package me.rhunk.snapenhance.ui.setup.screens.impl import androidx.compose.runtime.Composable -import me.rhunk.snapenhance.manager.setup.screens.SetupScreen +import me.rhunk.snapenhance.ui.setup.screens.SetupScreen class LanguageScreen : SetupScreen(){ - @Composable override fun Content() { diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/impl/MappingsScreen.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/impl/MappingsScreen.kt similarity index 74% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/impl/MappingsScreen.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/impl/MappingsScreen.kt index 1b5d1748..c49494f2 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/impl/MappingsScreen.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/impl/MappingsScreen.kt @@ -1,9 +1,9 @@ -package me.rhunk.snapenhance.manager.setup.screens.impl +package me.rhunk.snapenhance.ui.setup.screens.impl import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import me.rhunk.snapenhance.manager.setup.screens.SetupScreen +import me.rhunk.snapenhance.ui.setup.screens.SetupScreen class MappingsScreen : SetupScreen() { @Composable diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/impl/SaveFolderScreen.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/impl/SaveFolderScreen.kt similarity index 74% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/impl/SaveFolderScreen.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/impl/SaveFolderScreen.kt index 62df1980..2d2884a3 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/impl/SaveFolderScreen.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/impl/SaveFolderScreen.kt @@ -1,9 +1,9 @@ -package me.rhunk.snapenhance.manager.setup.screens.impl +package me.rhunk.snapenhance.ui.setup.screens.impl import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import me.rhunk.snapenhance.manager.setup.screens.SetupScreen +import me.rhunk.snapenhance.ui.setup.screens.SetupScreen class SaveFolderScreen : SetupScreen() { diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/impl/WelcomeScreen.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/impl/WelcomeScreen.kt similarity index 74% rename from app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/impl/WelcomeScreen.kt rename to app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/impl/WelcomeScreen.kt index 64c348ef..40df1647 100644 --- a/app/src/main/kotlin/me/rhunk/snapenhance/manager/setup/screens/impl/WelcomeScreen.kt +++ b/app/src/main/kotlin/me/rhunk/snapenhance/ui/setup/screens/impl/WelcomeScreen.kt @@ -1,9 +1,9 @@ -package me.rhunk.snapenhance.manager.setup.screens.impl +package me.rhunk.snapenhance.ui.setup.screens.impl import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import me.rhunk.snapenhance.manager.setup.screens.SetupScreen +import me.rhunk.snapenhance.ui.setup.screens.SetupScreen class WelcomeScreen : SetupScreen() { diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/ModContext.kt b/core/src/main/kotlin/me/rhunk/snapenhance/ModContext.kt index 3b9b1fe7..d4c90334 100644 --- a/core/src/main/kotlin/me/rhunk/snapenhance/ModContext.kt +++ b/core/src/main/kotlin/me/rhunk/snapenhance/ModContext.kt @@ -12,7 +12,7 @@ import com.google.gson.Gson import com.google.gson.GsonBuilder import kotlinx.coroutines.asCoroutineDispatcher import me.rhunk.snapenhance.bridge.BridgeClient -import me.rhunk.snapenhance.bridge.wrapper.TranslationWrapper +import me.rhunk.snapenhance.bridge.wrapper.LocaleWrapper import me.rhunk.snapenhance.core.config.ModConfig import me.rhunk.snapenhance.core.eventbus.EventBus import me.rhunk.snapenhance.data.MessageSender @@ -45,7 +45,7 @@ class ModContext { val event = EventBus(this) val eventDispatcher = EventDispatcher(this) - val translation = TranslationWrapper() + val translation = LocaleWrapper() val features = FeatureManager(this) val mappings = MappingManager(this) val actionManager = ActionManager(this) diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/SharedContext.kt b/core/src/main/kotlin/me/rhunk/snapenhance/SharedContext.kt index 77d3a289..660969f3 100644 --- a/core/src/main/kotlin/me/rhunk/snapenhance/SharedContext.kt +++ b/core/src/main/kotlin/me/rhunk/snapenhance/SharedContext.kt @@ -7,7 +7,7 @@ import android.content.Intent import android.os.Build import android.os.Environment import android.provider.Settings -import me.rhunk.snapenhance.bridge.wrapper.TranslationWrapper +import me.rhunk.snapenhance.bridge.wrapper.LocaleWrapper import me.rhunk.snapenhance.download.DownloadTaskManager import kotlin.system.exitProcess @@ -16,7 +16,7 @@ import kotlin.system.exitProcess */ object SharedContext { lateinit var downloadTaskManager: DownloadTaskManager - lateinit var translation: TranslationWrapper + lateinit var translation: LocaleWrapper private fun askForStoragePermission(context: Context) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { @@ -70,7 +70,7 @@ object SharedContext { } } if (!this::translation.isInitialized) { - translation = TranslationWrapper().apply { + translation = LocaleWrapper().apply { loadFromContext(context) } } diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/bridge/BridgeService.kt b/core/src/main/kotlin/me/rhunk/snapenhance/bridge/BridgeService.kt index 1aa1003f..0a61a4e4 100644 --- a/core/src/main/kotlin/me/rhunk/snapenhance/bridge/BridgeService.kt +++ b/core/src/main/kotlin/me/rhunk/snapenhance/bridge/BridgeService.kt @@ -6,7 +6,7 @@ import android.os.IBinder import me.rhunk.snapenhance.SharedContext import me.rhunk.snapenhance.bridge.types.BridgeFileType import me.rhunk.snapenhance.bridge.wrapper.MessageLoggerWrapper -import me.rhunk.snapenhance.bridge.wrapper.TranslationWrapper +import me.rhunk.snapenhance.bridge.wrapper.LocaleWrapper import me.rhunk.snapenhance.download.DownloadProcessor class BridgeService : Service() { @@ -85,7 +85,7 @@ class BridgeService : Service() { override fun clearMessageLogger() = messageLoggerWrapper.clearMessages() - override fun fetchTranslations() = TranslationWrapper.fetchLocales(context = this@BridgeService).associate { + override fun fetchTranslations() = LocaleWrapper.fetchLocales(context = this@BridgeService).associate { it.locale to it.content } diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/bridge/wrapper/TranslationWrapper.kt b/core/src/main/kotlin/me/rhunk/snapenhance/bridge/wrapper/LocaleWrapper.kt similarity index 92% rename from core/src/main/kotlin/me/rhunk/snapenhance/bridge/wrapper/TranslationWrapper.kt rename to core/src/main/kotlin/me/rhunk/snapenhance/bridge/wrapper/LocaleWrapper.kt index 9bd2cc67..bc7968dd 100644 --- a/core/src/main/kotlin/me/rhunk/snapenhance/bridge/wrapper/TranslationWrapper.kt +++ b/core/src/main/kotlin/me/rhunk/snapenhance/bridge/wrapper/LocaleWrapper.kt @@ -9,9 +9,9 @@ import me.rhunk.snapenhance.data.LocalePair import java.util.Locale -class TranslationWrapper { +class LocaleWrapper { companion object { - private const val DEFAULT_LOCALE = "en_US" + const val DEFAULT_LOCALE = "en_US" fun fetchLocales(context: Context): List { val deviceLocale = Locale.getDefault().toString() @@ -85,10 +85,10 @@ class TranslationWrapper { } } - fun getCategory(key: String): TranslationWrapper { - return TranslationWrapper().apply { + fun getCategory(key: String): LocaleWrapper { + return LocaleWrapper().apply { translationMap.putAll( - this@TranslationWrapper.translationMap + this@LocaleWrapper.translationMap .filterKeys { it.startsWith("$key.") } .mapKeys { it.key.substring(key.length + 1) } ) diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/config/ModConfig.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/config/ModConfig.kt index 29fd998b..8d4890a0 100644 --- a/core/src/main/kotlin/me/rhunk/snapenhance/core/config/ModConfig.kt +++ b/core/src/main/kotlin/me/rhunk/snapenhance/core/config/ModConfig.kt @@ -8,17 +8,21 @@ import me.rhunk.snapenhance.Logger import me.rhunk.snapenhance.bridge.BridgeClient import me.rhunk.snapenhance.bridge.FileLoaderWrapper import me.rhunk.snapenhance.bridge.types.BridgeFileType +import me.rhunk.snapenhance.bridge.wrapper.LocaleWrapper import me.rhunk.snapenhance.core.config.impl.RootConfig -class ModConfig() { - val root = RootConfig() +class ModConfig { - companion object { - val gson: Gson = GsonBuilder().setPrettyPrinting().create() - } + var locale: String = LocaleWrapper.DEFAULT_LOCALE + set(value) { + field = value + writeConfig() + } + private val gson: Gson = GsonBuilder().setPrettyPrinting().create() private val file = FileLoaderWrapper(BridgeFileType.CONFIG, "{}".toByteArray(Charsets.UTF_8)) + val root = RootConfig() operator fun getValue(thisRef: Any?, property: Any?) = root private fun load() { @@ -36,12 +40,14 @@ class ModConfig() { } private fun loadConfig() { - val configContent = file.read() - root.fromJson(gson.fromJson(configContent.toString(Charsets.UTF_8), JsonObject::class.java)) + val configFileContent = file.read() + val configObject = gson.fromJson(configFileContent.toString(Charsets.UTF_8), JsonObject::class.java) + locale = configObject.get("language")?.asString ?: LocaleWrapper.DEFAULT_LOCALE } fun writeConfig() { val configObject = root.toJson() + configObject.addProperty("language", locale) file.write(configObject.toString().toByteArray(Charsets.UTF_8)) } diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/ui/download/DownloadManagerActivity.kt b/core/src/main/kotlin/me/rhunk/snapenhance/ui/download/DownloadManagerActivity.kt index be7e1898..f456e96d 100644 --- a/core/src/main/kotlin/me/rhunk/snapenhance/ui/download/DownloadManagerActivity.kt +++ b/core/src/main/kotlin/me/rhunk/snapenhance/ui/download/DownloadManagerActivity.kt @@ -16,13 +16,13 @@ import android.widget.TextView import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.RecyclerView import me.rhunk.snapenhance.SharedContext -import me.rhunk.snapenhance.bridge.wrapper.TranslationWrapper +import me.rhunk.snapenhance.bridge.wrapper.LocaleWrapper import me.rhunk.snapenhance.core.BuildConfig import me.rhunk.snapenhance.core.R import me.rhunk.snapenhance.download.data.PendingDownload class DownloadManagerActivity : Activity() { - lateinit var translation: TranslationWrapper + lateinit var translation: LocaleWrapper private val backCallbacks = mutableListOf<() -> Unit>() private val fetchedDownloadTasks = mutableListOf()