feat: Branding to Wintry

This commit is contained in:
pylixonly 2025-07-14 19:08:44 +08:00
parent 0708640ad4
commit fcae071203
140 changed files with 286 additions and 7337 deletions

View file

@ -18,7 +18,7 @@ val gitHasLocalCommits = gitCurrentBranch?.let { providers.execIgnoreCode("git",
val gitHasHasLocalChanges = providers.execIgnoreCode("git", "status", "-s").isNotEmpty()
android {
namespace = "com.aliucord.manager"
namespace = "dev.wintry.manager"
compileSdk = 36
defaultConfig {
@ -31,7 +31,8 @@ android {
useSupportLibrary = true
}
buildConfigField("String", "TAG", "\"AliucordManager\"")
buildConfigField("String", "APPLICATION_NAME", "\"Wintry Manager\"")
buildConfigField("String", "TAG", "\"WintryManager\"")
buildConfigField("String", "SUPPORT_SERVER", "\"EsNDvBaHVU\"")
buildConfigField("String", "BACKEND_URL", "\"https://aliucord.com/\"")

View file

@ -21,8 +21,9 @@
tools:ignore="QueryAllPackagesPermission" />
<application
android:name=".ManagerApplication"
android:name="com.aliucord.manager.ManagerApplication"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:requestLegacyExternalStorage="true"
@ -31,7 +32,7 @@
android:theme="@style/Theme.AppCompat.NoActionBar">
<receiver
android:name=".installers.pm.PMIntentReceiver"
android:name="com.aliucord.manager.installers.pm.PMIntentReceiver"
android:exported="false" />
<provider
@ -45,7 +46,7 @@
</provider>
<activity
android:name=".MainActivity"
android:name="com.aliucord.manager.MainActivity"
android:exported="true"
android:launchMode="singleTask"
android:screenOrientation="portrait"

View file

@ -24,6 +24,7 @@ import com.aliucord.manager.ui.screens.home.HomeScreen
import com.aliucord.manager.ui.theme.ManagerTheme
import com.aliucord.manager.ui.widgets.updater.UpdaterDialog
import com.aliucord.manager.util.back
import dev.wintry.manager.BuildConfig
import org.koin.android.ext.android.inject
class MainActivity : ComponentActivity() {

View file

@ -1,7 +1,7 @@
package com.aliucord.manager.di
import android.app.Application
import com.aliucord.manager.BuildConfig
import dev.wintry.manager.BuildConfig
import io.ktor.client.HttpClient
import io.ktor.client.call.HttpClientCall
import io.ktor.client.engine.okhttp.OkHttp
@ -38,7 +38,7 @@ fun Scope.provideHttpClient() = HttpClient(OkHttp) {
val application: Application = get()
defaultRequest {
header(HttpHeaders.UserAgent, "Aliucord Manager/${BuildConfig.VERSION_NAME}")
header(HttpHeaders.UserAgent, "${BuildConfig.APPLICATION_NAME}/${BuildConfig.VERSION_NAME}")
}
engine {

View file

@ -1,7 +1,7 @@
package com.aliucord.manager.installers
import android.content.Context
import com.aliucord.manager.R
import dev.wintry.manager.R
import kotlinx.parcelize.Parcelize
@Parcelize

View file

@ -9,9 +9,9 @@ import android.os.Build
import android.os.Process
import android.util.Log
import androidx.core.content.ContextCompat
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.installers.Installer
import com.aliucord.manager.util.isMiui
import dev.wintry.manager.BuildConfig
import kotlinx.coroutines.suspendCancellableCoroutine
import java.io.File
import kotlin.coroutines.resume

View file

@ -3,8 +3,8 @@ package com.aliucord.manager.installers.pm
import android.content.Context
import android.content.pm.PackageInstaller
import android.os.Parcelable
import com.aliucord.manager.R
import com.aliucord.manager.installers.InstallerResult
import dev.wintry.manager.R
import kotlinx.parcelize.Parcelize
/**

View file

@ -5,9 +5,9 @@ import android.content.*
import android.content.pm.PackageInstaller
import android.util.Log
import android.widget.Toast
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.installers.InstallerResult
import com.aliucord.manager.installers.UnknownInstallerError
import dev.wintry.manager.BuildConfig
/**
* This class is used as a callback receiver for [PackageInstaller] events,

View file

@ -2,10 +2,10 @@ package com.aliucord.manager.installers.pm
import android.content.*
import android.content.pm.PackageInstaller
import com.aliucord.manager.R
import com.aliucord.manager.installers.InstallerResult
import com.aliucord.manager.installers.UnknownInstallerError
import com.aliucord.manager.util.showToast
import dev.wintry.manager.R
/**
* This receiver is meant to be registered dynamically in combination with [PMIntentReceiver] in order to

View file

@ -8,10 +8,10 @@ import android.text.format.Formatter
import android.util.Log
import androidx.compose.runtime.Immutable
import androidx.core.content.getSystemService
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import com.aliucord.manager.util.IS_PROBABLY_EMULATOR
import com.aliucord.manager.util.isPlayProtectEnabled
import dev.wintry.manager.BuildConfig
import kotlinx.serialization.*
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.decodeFromStream
@ -125,7 +125,7 @@ class InstallLogManager(
}
return """
Aliucord Manager v${BuildConfig.VERSION_NAME}
${BuildConfig.APPLICATION_NAME} v${BuildConfig.VERSION_NAME}
Built from commit ${BuildConfig.GIT_COMMIT} on ${BuildConfig.GIT_BRANCH} $buildType
Developer mode: ${if (prefs.devMode) "On" else "Off"}
External storage: ${if (prefs.devMode || prefs.keepPatchedApks) "Yes" else "No"}

View file

@ -7,10 +7,10 @@ import android.database.Cursor
import android.net.Uri
import androidx.core.content.getSystemService
import androidx.core.net.toUri
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
import com.aliucord.manager.manager.download.IDownloadManager.ProgressListener
import com.aliucord.manager.manager.download.IDownloadManager.Result
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.delay
import java.io.File

View file

@ -6,10 +6,10 @@ import android.os.Build
import android.os.storage.StorageManager
import androidx.annotation.StringRes
import androidx.core.content.getSystemService
import com.aliucord.manager.R
import com.aliucord.manager.manager.download.IDownloadManager.Result
import com.aliucord.manager.patcher.util.InsufficientStorageException
import com.aliucord.manager.util.IS_PROBABLY_EMULATOR
import dev.wintry.manager.R
import io.ktor.client.HttpClient
import io.ktor.client.request.header
import io.ktor.client.request.prepareGet

View file

@ -1,8 +1,8 @@
package com.aliucord.manager.network.services
import android.util.Log
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.network.utils.*
import dev.wintry.manager.BuildConfig
import io.ktor.client.HttpClient
import io.ktor.client.request.HttpRequestBuilder
import io.ktor.client.request.request

View file

@ -4,13 +4,13 @@ import android.content.Context
import android.util.Log
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.ProcessLifecycleOwner
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
import com.aliucord.manager.manager.PreferencesManager
import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.DownloadStep
import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.ui.util.InstallNotifications
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
import kotlinx.collections.immutable.ImmutableList
import kotlinx.coroutines.delay
import org.koin.core.component.KoinComponent

View file

@ -3,7 +3,7 @@ package com.aliucord.manager.patcher.steps
import android.os.Parcelable
import androidx.annotation.StringRes
import androidx.compose.runtime.Immutable
import com.aliucord.manager.R
import dev.wintry.manager.R
import kotlinx.parcelize.Parcelize
/**

View file

@ -5,12 +5,12 @@ import android.util.Log
import android.widget.Toast
import androidx.annotation.CallSuper
import androidx.compose.runtime.Stable
import com.aliucord.manager.R
import com.aliucord.manager.manager.download.IDownloadManager
import com.aliucord.manager.manager.download.KtorDownloadManager
import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.util.*
import dev.wintry.manager.R
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.koin.core.component.KoinComponent

View file

@ -4,12 +4,12 @@ import android.app.Application
import android.os.Build
import android.os.storage.StorageManager
import androidx.core.content.getSystemService
import com.aliucord.manager.R
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.util.InsufficientStorageException
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
import java.io.File

View file

@ -1,7 +1,6 @@
package com.aliucord.manager.patcher.steps.download
import androidx.compose.runtime.Stable
import com.aliucord.manager.R
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.network.services.AliucordMavenService
import com.aliucord.manager.network.utils.SemVer
@ -11,6 +10,7 @@ import com.aliucord.manager.patcher.steps.base.DownloadStep
import com.aliucord.manager.patcher.steps.base.IDexProvider
import com.aliucord.manager.patcher.steps.patch.ReorganizeDexStep
import com.github.diamondminer88.zip.ZipReader
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject

View file

@ -1,9 +1,9 @@
package com.aliucord.manager.patcher.steps.download
import com.aliucord.manager.R
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.network.services.RNATrackerService.Companion.BASE_URL
import com.aliucord.manager.patcher.steps.base.DownloadDiscordRNAStep
import dev.wintry.manager.R
import org.koin.core.component.inject
class DownloadDiscordRNABaseStep : DownloadDiscordRNAStep() {

View file

@ -1,9 +1,9 @@
package com.aliucord.manager.patcher.steps.download
import com.aliucord.manager.R
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.network.services.RNATrackerService.Companion.BASE_URL
import com.aliucord.manager.patcher.steps.base.DownloadDiscordRNAStep
import dev.wintry.manager.R
import org.koin.core.component.inject
class DownloadDiscordRNALangStep : DownloadDiscordRNAStep() {

View file

@ -1,10 +1,10 @@
package com.aliucord.manager.patcher.steps.download
import android.os.Build
import com.aliucord.manager.R
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.network.services.RNATrackerService.Companion.BASE_URL
import com.aliucord.manager.patcher.steps.base.DownloadDiscordRNAStep
import dev.wintry.manager.R
import org.koin.core.component.inject
class DownloadDiscordRNALibStep : DownloadDiscordRNAStep() {

View file

@ -1,9 +1,9 @@
package com.aliucord.manager.patcher.steps.download
import com.aliucord.manager.R
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.network.services.RNATrackerService.Companion.BASE_URL
import com.aliucord.manager.patcher.steps.base.DownloadDiscordRNAStep
import dev.wintry.manager.R
import org.koin.core.component.inject
class DownloadDiscordRNAResourcesStep : DownloadDiscordRNAStep() {

View file

@ -1,10 +1,10 @@
package com.aliucord.manager.patcher.steps.download
import androidx.compose.runtime.Stable
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.patcher.steps.base.DownloadStep
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject

View file

@ -3,8 +3,6 @@ package com.aliucord.manager.patcher.steps.download
import android.util.Log
import androidx.compose.runtime.Stable
import androidx.compose.runtime.mutableStateListOf
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
import com.aliucord.manager.manager.OverlayManager
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.network.utils.SemVer
@ -13,6 +11,8 @@ import com.aliucord.manager.patcher.steps.base.*
import com.aliucord.manager.patcher.steps.patch.ReorganizeDexStep
import com.aliucord.manager.patcher.steps.prepare.FetchInfoStep
import com.aliucord.manager.ui.components.dialogs.CustomComponentVersionPicker
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject

View file

@ -1,11 +1,11 @@
package com.aliucord.manager.patcher.steps.download
import androidx.compose.runtime.Stable
import com.aliucord.manager.R
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.patcher.steps.base.DownloadStep
import com.aliucord.manager.patcher.steps.base.IDexProvider
import com.aliucord.manager.patcher.steps.patch.ReorganizeDexStep
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject

View file

@ -3,8 +3,6 @@ package com.aliucord.manager.patcher.steps.download
import android.util.Log
import androidx.compose.runtime.Stable
import androidx.compose.runtime.mutableStateListOf
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
import com.aliucord.manager.manager.OverlayManager
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.network.utils.SemVer
@ -13,6 +11,8 @@ import com.aliucord.manager.patcher.steps.base.DownloadStep
import com.aliucord.manager.patcher.steps.base.StepState
import com.aliucord.manager.patcher.steps.prepare.FetchInfoStep
import com.aliucord.manager.ui.components.dialogs.CustomComponentVersionPicker
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject

View file

@ -1,12 +1,12 @@
package com.aliucord.manager.patcher.steps.download
import com.aliucord.manager.R
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.network.services.WintryGithubService
import com.aliucord.manager.network.utils.SemVer
import com.aliucord.manager.network.utils.getOrThrow
import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.base.DownloadStep
import dev.wintry.manager.R
import org.koin.core.component.inject
class DownloadWintryXposedStep : DownloadStep() {

View file

@ -1,13 +1,13 @@
package com.aliucord.manager.patcher.steps.install
import android.os.Build
import com.aliucord.manager.R
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.steps.download.CopyDependenciesStep
import com.github.diamondminer88.zip.*
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject

View file

@ -1,11 +1,11 @@
package com.aliucord.manager.patcher.steps.install
import com.aliucord.manager.R
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.manager.PreferencesManager
import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject

View file

@ -1,12 +1,12 @@
package com.aliucord.manager.patcher.steps.install
import com.aliucord.manager.R
import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.steps.download.CopyDependenciesStep
import com.aliucord.manager.patcher.steps.download.DownloadWintryXposedStep
import com.aliucord.manager.patcher.util.Signer
import dev.wintry.manager.R
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.lsposed.lspatch.share.LSPConfig

View file

@ -2,7 +2,6 @@ package com.aliucord.manager.patcher.steps.install
import android.content.Context
import androidx.lifecycle.*
import com.aliucord.manager.R
import com.aliucord.manager.installers.InstallerResult
import com.aliucord.manager.manager.*
import com.aliucord.manager.patcher.StepRunner
@ -15,6 +14,7 @@ import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import com.aliucord.manager.ui.util.InstallNotifications
import com.aliucord.manager.util.isPackageInstalled
import com.aliucord.manager.util.isPlayProtectEnabled
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject

View file

@ -1,11 +1,11 @@
package com.aliucord.manager.patcher.steps.install
import com.aliucord.manager.R
import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.steps.download.CopyDependenciesStep
import com.aliucord.manager.patcher.util.Signer
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
/**

View file

@ -1,7 +1,6 @@
package com.aliucord.manager.patcher.steps.patch
import android.os.Build
import com.aliucord.manager.R
import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.IDexProvider
@ -9,6 +8,7 @@ import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.steps.download.CopyDependenciesStep
import com.aliucord.manager.patcher.steps.download.DownloadAliuhookStep
import com.github.diamondminer88.zip.*
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
/**

View file

@ -12,7 +12,6 @@ import androidx.core.graphics.applyCanvas
import androidx.core.graphics.createBitmap
import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory
import androidx.core.graphics.drawable.toBitmap
import com.aliucord.manager.R
import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step
@ -31,6 +30,7 @@ import com.aliucord.manager.ui.screens.patchopts.PatchOptions.IconReplacement
import com.aliucord.manager.util.getResBytes
import com.github.diamondminer88.zip.ZipWriter
import com.google.devrel.gmscore.tools.apk.arsc.*
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
import java.io.ByteArrayOutputStream

View file

@ -1,6 +1,5 @@
package com.aliucord.manager.patcher.steps.patch
import com.aliucord.manager.R
import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step
@ -9,6 +8,7 @@ import com.aliucord.manager.patcher.util.ManifestPatcher
import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import com.github.diamondminer88.zip.ZipReader
import com.github.diamondminer88.zip.ZipWriter
import dev.wintry.manager.R
/**
* Patch the APK's AndroidManifest.xml

View file

@ -1,6 +1,5 @@
package com.aliucord.manager.patcher.steps.patch
import com.aliucord.manager.R
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup
@ -8,6 +7,7 @@ import com.aliucord.manager.patcher.steps.base.IDexProvider
import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.steps.download.CopyDependenciesStep
import com.github.diamondminer88.zip.*
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject

View file

@ -1,7 +1,5 @@
package com.aliucord.manager.patcher.steps.patch
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
import com.aliucord.manager.network.utils.SemVer
import com.aliucord.manager.patcher.InstallMetadata
import com.aliucord.manager.patcher.StepRunner
@ -10,6 +8,8 @@ import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.steps.download.*
import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import com.github.diamondminer88.zip.ZipWriter
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
import kotlinx.serialization.json.Json
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject

View file

@ -1,6 +1,5 @@
package com.aliucord.manager.patcher.steps.patch
import com.aliucord.manager.R
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup
@ -18,6 +17,7 @@ import com.github.diamondminer88.zip.ZipReader
import com.github.difflib.DiffUtils
import com.github.difflib.UnifiedDiffUtils
import com.github.difflib.patch.Patch
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
import java.io.FileNotFoundException

View file

@ -2,7 +2,6 @@ package com.aliucord.manager.patcher.steps.prepare
import android.content.Context
import android.content.pm.PackageManager.NameNotFoundException
import com.aliucord.manager.R
import com.aliucord.manager.installers.InstallerResult
import com.aliucord.manager.manager.InstallerManager
import com.aliucord.manager.patcher.StepRunner
@ -11,6 +10,7 @@ import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.steps.base.StepState
import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import com.aliucord.manager.util.*
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject

View file

@ -1,6 +1,5 @@
package com.aliucord.manager.patcher.steps.prepare
import com.aliucord.manager.R
import com.aliucord.manager.network.services.RNATrackerService
import com.aliucord.manager.network.utils.getOrThrow
import com.aliucord.manager.patcher.StepRunner
@ -8,6 +7,7 @@ import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import com.aliucord.manager.ui.screens.patchopts.VersionPreference
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
import kotlin.properties.Delegates

View file

@ -1,13 +1,13 @@
package com.aliucord.manager.patcher.steps.prepare
import androidx.compose.runtime.Stable
import com.aliucord.manager.R
import com.aliucord.manager.network.models.BuildInfo
import com.aliucord.manager.network.services.AliucordGithubService
import com.aliucord.manager.network.utils.getOrThrow
import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject

View file

@ -1,12 +1,12 @@
package com.aliucord.manager.patcher.steps.prepare
import androidx.compose.runtime.Stable
import com.aliucord.manager.R
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.steps.base.StepState
import dev.wintry.manager.R
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject

View file

@ -7,8 +7,8 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import cafe.adriel.voyager.navigator.LocalNavigator
import com.aliucord.manager.R
import com.aliucord.manager.util.back
import dev.wintry.manager.R
/**
* Standalone back button for interacting with the current navigator.

View file

@ -17,9 +17,9 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontStyle
import androidx.compose.ui.unit.dp
import coil3.compose.SubcomposeAsyncImage
import com.aliucord.manager.R
import com.aliucord.manager.network.models.Contributor
import com.valentinilk.shimmer.shimmer
import dev.wintry.manager.R
@Composable
fun ContributorCommitsItem(

View file

@ -18,8 +18,8 @@ import androidx.core.content.ContextCompat
import androidx.core.graphics.applyCanvas
import androidx.core.graphics.createBitmap
import androidx.core.graphics.drawable.toDrawable
import com.aliucord.manager.R
import com.aliucord.manager.ui.screens.patchopts.PatchOptions.IconReplacement
import dev.wintry.manager.R
// Sizing information is obtained from here: https://medium.com/google-design/designing-adaptive-icons-515af294c783

View file

@ -8,7 +8,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.aliucord.manager.R
import dev.wintry.manager.R
@Composable
fun LoadFailure(modifier: Modifier = Modifier) {

View file

@ -12,11 +12,14 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
@Composable
fun ProjectHeader(modifier: Modifier = Modifier) {
fun ProjectHeader(
aliucord: Boolean = false,
modifier: Modifier = Modifier,
) {
val uriHandler = LocalUriHandler.current
Column(
@ -25,7 +28,7 @@ fun ProjectHeader(modifier: Modifier = Modifier) {
modifier = modifier,
) {
Image(
painter = painterResource(R.drawable.ic_aliucord_logo),
painter = painterResource(if (aliucord) R.drawable.ic_aliucord_logo else R.drawable.ic_rounded_wintry),
contentDescription = null,
modifier = Modifier
.padding(bottom = 6.dp)
@ -33,12 +36,12 @@ fun ProjectHeader(modifier: Modifier = Modifier) {
)
Text(
text = stringResource(R.string.aliucord),
text = stringResource(if (aliucord) R.string.aliucord else R.string.wintry),
style = MaterialTheme.typography.titleMedium.copy(fontSize = 26.sp)
)
Text(
text = stringResource(R.string.app_description),
text = stringResource(if (aliucord) R.string.aliucord_description else R.string.app_description),
style = MaterialTheme.typography.titleSmall.copy(
color = MaterialTheme.colorScheme.onSurface.copy(alpha = .6f)
),

View file

@ -8,8 +8,8 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.aliucord.manager.R
import com.aliucord.manager.ui.util.mirrorVertically
import dev.wintry.manager.R
@Composable
fun ResetToDefaultButton(

View file

@ -15,8 +15,8 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.DialogProperties
import com.aliucord.manager.R
import com.aliucord.manager.network.utils.SemVer
import dev.wintry.manager.R
@Composable
fun CustomComponentVersionPicker(

View file

@ -8,7 +8,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import com.aliucord.manager.R
import dev.wintry.manager.R
@Composable
fun InstallerAbortDialog(

View file

@ -13,7 +13,7 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.DialogProperties
import com.aliucord.manager.R
import dev.wintry.manager.R
@Composable
fun NetworkWarningDialog(

View file

@ -16,8 +16,8 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.DialogProperties
import com.aliucord.manager.R
import com.aliucord.manager.ui.theme.customColors
import dev.wintry.manager.R
@Composable
fun PlayProtectDialog(

View file

@ -18,9 +18,9 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.DialogProperties
import androidx.core.net.toUri
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
import com.google.accompanist.permissions.*
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
@Composable
@OptIn(ExperimentalPermissionsApi::class)

View file

@ -16,8 +16,8 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.DialogProperties
import androidx.core.net.toUri
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
@Composable
fun UnknownSourcesPermissionDialog() {

View file

@ -8,10 +8,10 @@ import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.*
import com.aliucord.manager.R
import com.aliucord.manager.ui.screens.patching.components.TextBanner
import com.aliucord.manager.ui.theme.ManagerTheme
import com.aliucord.manager.ui.theme.customColors
import dev.wintry.manager.R
@Composable
@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES)

View file

@ -10,11 +10,11 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.tooling.preview.*
import androidx.core.graphics.drawable.toBitmap
import com.aliucord.manager.R
import com.aliucord.manager.ui.screens.iconopts.IconOptionsMode
import com.aliucord.manager.ui.screens.iconopts.IconOptionsScreenContent
import com.aliucord.manager.ui.screens.patchopts.PatchOptions.IconReplacement
import com.aliucord.manager.ui.theme.ManagerTheme
import dev.wintry.manager.R
import dev.zt64.compose.pipette.HsvColor
import java.io.ByteArrayOutputStream

View file

@ -6,6 +6,8 @@
package com.aliucord.manager.ui.screens.about
import android.os.Parcelable
import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
@ -13,14 +15,15 @@ import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import cafe.adriel.voyager.core.screen.Screen
import cafe.adriel.voyager.koin.koinScreenModel
import com.aliucord.manager.R
import com.aliucord.manager.ui.components.*
import com.aliucord.manager.ui.screens.about.components.LeadContributor
import com.aliucord.manager.ui.util.paddings.*
import dev.wintry.manager.R
import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize
@ -42,7 +45,7 @@ fun AboutScreenContent(state: State<AboutScreenState>) {
Scaffold(
topBar = {
TopAppBar(
title = { Text(stringResource(R.string.navigation_about)) },
title = { Text(stringResource(R.string.navigation_about_manager)) },
navigationIcon = { BackButton() },
)
}
@ -57,8 +60,35 @@ fun AboutScreenContent(state: State<AboutScreenState>) {
.padding(paddingValues.exclude(PaddingValuesSides.Bottom))
.padding(horizontal = 14.dp),
) {
item(key = "MANAGER_CREDIT_DISCLAIMER_BANNER") {
Box(
contentAlignment = Alignment.Center,
modifier = Modifier
.padding(bottom = 24.dp)
.border(
width = 2.dp,
color = MaterialTheme.colorScheme.surfaceVariant,
shape = MaterialTheme.shapes.medium
)
.clip(MaterialTheme.shapes.medium)
.background(MaterialTheme.colorScheme.surfaceContainerHigh)
) {
Row(
horizontalArrangement = Arrangement.spacedBy(12.dp),
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier
.padding(horizontal = 20.dp, vertical = 14.dp)
) {
Text(
text = stringResource(R.string.about_manager_credit_disclaimer_notice),
style = MaterialTheme.typography.labelMedium,
)
}
}
}
item(key = "PROJECT_HEADER") {
ProjectHeader()
ProjectHeader(aliucord = true)
}
item(key = "HEADER_DIVIDER") {

View file

@ -13,8 +13,6 @@ import androidx.core.graphics.drawable.toBitmap
import androidx.core.net.toUri
import cafe.adriel.voyager.core.model.ScreenModel
import cafe.adriel.voyager.core.model.screenModelScope
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
import com.aliucord.manager.network.models.BuildInfo
import com.aliucord.manager.network.models.RNATrackerIndex
import com.aliucord.manager.network.services.*
@ -26,6 +24,8 @@ import com.aliucord.manager.ui.util.DiscordVersion
import com.aliucord.manager.ui.util.toUnsafeImmutable
import com.aliucord.manager.util.*
import com.github.diamondminer88.zip.ZipReader
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
import kotlinx.coroutines.*
import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock

View file

@ -26,7 +26,6 @@ import cafe.adriel.voyager.core.screen.Screen
import cafe.adriel.voyager.koin.koinScreenModel
import cafe.adriel.voyager.navigator.LocalNavigator
import cafe.adriel.voyager.navigator.currentOrThrow
import com.aliucord.manager.R
import com.aliucord.manager.ui.components.LoadFailure
import com.aliucord.manager.ui.components.ProjectHeader
import com.aliucord.manager.ui.screens.home.components.*
@ -35,6 +34,7 @@ import com.aliucord.manager.ui.screens.plugins.PluginsScreen
import com.aliucord.manager.ui.util.paddings.PaddingValuesSides
import com.aliucord.manager.ui.util.paddings.exclude
import com.aliucord.manager.util.*
import dev.wintry.manager.R
import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize

View file

@ -5,10 +5,10 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import cafe.adriel.voyager.navigator.LocalNavigator
import com.aliucord.manager.R
import com.aliucord.manager.ui.screens.about.AboutScreen
import com.aliucord.manager.ui.screens.logs.LogsListScreen
import com.aliucord.manager.ui.screens.settings.SettingsScreen
import dev.wintry.manager.R
@Composable
fun HomeAppBar() {

View file

@ -12,9 +12,9 @@ import androidx.compose.ui.graphics.*
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.aliucord.manager.R
import com.aliucord.manager.ui.util.thenIf
import com.valentinilk.shimmer.*
import dev.wintry.manager.R
private val shimmerTheme = defaultShimmerTheme.copy(
shimmerWidth = 150.dp,

View file

@ -15,10 +15,10 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import com.aliucord.manager.R
import com.aliucord.manager.ui.components.SegmentedButton
import com.aliucord.manager.ui.components.VersionDisplay
import com.aliucord.manager.ui.screens.home.InstallData
import dev.wintry.manager.R
@Composable
fun InstalledItemCard(

View file

@ -8,10 +8,10 @@ import androidx.compose.runtime.*
import androidx.compose.ui.graphics.Color
import cafe.adriel.voyager.core.model.ScreenModel
import cafe.adriel.voyager.core.model.screenModelScope
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
import com.aliucord.manager.ui.screens.patchopts.PatchOptions.IconReplacement
import com.aliucord.manager.util.*
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
import dev.zt64.compose.pipette.HsvColor
import java.io.IOException

View file

@ -34,7 +34,6 @@ import cafe.adriel.voyager.koin.koinScreenModel
import cafe.adriel.voyager.navigator.LocalNavigator
import cafe.adriel.voyager.navigator.currentOrThrow
import coil3.compose.AsyncImage
import com.aliucord.manager.R
import com.aliucord.manager.ui.components.*
import com.aliucord.manager.ui.screens.iconopts.components.*
import com.aliucord.manager.ui.screens.patchopts.PatchOptions
@ -42,6 +41,7 @@ import com.aliucord.manager.ui.screens.patchopts.PatchOptionsScreen
import com.aliucord.manager.ui.util.ColorSaver
import com.aliucord.manager.ui.util.throttledState
import com.aliucord.manager.util.back
import dev.wintry.manager.R
import dev.zt64.compose.pipette.CircularColorPicker
import dev.zt64.compose.pipette.HsvColor
import kotlinx.parcelize.IgnoredOnParcel

View file

@ -5,9 +5,9 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import cafe.adriel.voyager.navigator.LocalNavigator
import com.aliucord.manager.R
import com.aliucord.manager.ui.components.BackButton
import com.aliucord.manager.ui.screens.settings.SettingsScreen
import dev.wintry.manager.R
@Composable
fun IconOptionsAppBar() {

View file

@ -11,7 +11,7 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.aliucord.manager.R
import dev.wintry.manager.R
import java.util.Locale
import kotlin.math.roundToInt

View file

@ -13,12 +13,12 @@ import cafe.adriel.voyager.core.screen.ScreenKey
import cafe.adriel.voyager.koin.koinScreenModel
import cafe.adriel.voyager.navigator.LocalNavigator
import cafe.adriel.voyager.navigator.currentOrThrow
import com.aliucord.manager.R
import com.aliucord.manager.manager.InstallLogData
import com.aliucord.manager.ui.components.Label
import com.aliucord.manager.ui.screens.log.components.LogAppBar
import com.aliucord.manager.ui.screens.log.components.LogTextArea
import com.aliucord.manager.util.back
import dev.wintry.manager.R
import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize
import org.koin.core.parameter.parametersOf

View file

@ -7,11 +7,11 @@ import androidx.compose.runtime.*
import androidx.core.content.FileProvider
import cafe.adriel.voyager.core.model.ScreenModel
import cafe.adriel.voyager.core.model.screenModelScope
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
import com.aliucord.manager.manager.InstallLogData
import com.aliucord.manager.manager.InstallLogManager
import com.aliucord.manager.util.*
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
class LogScreenModel(
private val installId: String,

View file

@ -4,8 +4,8 @@ import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import com.aliucord.manager.R
import com.aliucord.manager.ui.components.BackButton
import dev.wintry.manager.R
@Composable
fun LogAppBar(

View file

@ -6,9 +6,9 @@ import androidx.compose.runtime.Immutable
import androidx.compose.runtime.mutableStateListOf
import cafe.adriel.voyager.core.model.ScreenModel
import cafe.adriel.voyager.core.model.screenModelScope
import com.aliucord.manager.R
import com.aliucord.manager.manager.InstallLogManager
import com.aliucord.manager.util.*
import dev.wintry.manager.R
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toImmutableList

View file

@ -17,11 +17,11 @@ import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.aliucord.manager.R
import com.aliucord.manager.patcher.steps.base.StepState
import com.aliucord.manager.ui.screens.logs.LogEntry
import com.aliucord.manager.ui.screens.patching.components.StepStateIcon
import com.aliucord.manager.ui.screens.patching.components.TimeElapsed
import dev.wintry.manager.R
@Composable
fun LogEntryCard(

View file

@ -5,9 +5,9 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import cafe.adriel.voyager.navigator.LocalNavigator
import com.aliucord.manager.R
import com.aliucord.manager.ui.components.BackButton
import com.aliucord.manager.ui.screens.settings.SettingsScreen
import dev.wintry.manager.R
@Composable
fun LogsListAppBar(

View file

@ -9,7 +9,7 @@ import androidx.compose.ui.draw.alpha
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.aliucord.manager.R
import dev.wintry.manager.R
@Composable
fun LogsNone(modifier: Modifier = Modifier) {

View file

@ -8,7 +8,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import com.aliucord.manager.R
import dev.wintry.manager.R
@Composable
fun DeleteLogsDialog(

View file

@ -27,8 +27,6 @@ import cafe.adriel.voyager.core.screen.Screen
import cafe.adriel.voyager.koin.koinScreenModel
import cafe.adriel.voyager.navigator.LocalNavigator
import cafe.adriel.voyager.navigator.currentOrThrow
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.ui.components.MainActionButton
import com.aliucord.manager.ui.components.Wakelock
@ -42,6 +40,8 @@ import com.aliucord.manager.ui.util.spacedByLastAtBottom
import com.aliucord.manager.ui.util.thenIf
import com.aliucord.manager.util.back
import com.aliucord.manager.util.isIgnoringBatteryOptimizations
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
import kotlinx.collections.immutable.persistentListOf
import kotlinx.coroutines.flow.filter
import kotlinx.parcelize.IgnoredOnParcel

View file

@ -7,8 +7,6 @@ import androidx.annotation.StringRes
import androidx.compose.runtime.*
import cafe.adriel.voyager.core.model.StateScreenModel
import cafe.adriel.voyager.core.model.screenModelScope
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
import com.aliucord.manager.manager.*
import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.WintryPatchRunner
@ -19,6 +17,8 @@ import com.aliucord.manager.patcher.util.InsufficientStorageException
import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import com.aliucord.manager.ui.util.toUnsafeImmutable
import com.aliucord.manager.util.*
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.ImmutableMap
import kotlinx.coroutines.*

View file

@ -12,9 +12,9 @@ import androidx.compose.ui.draw.alpha
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import com.aliucord.manager.R
import com.aliucord.manager.ui.screens.patching.PatchingScreenState
import com.aliucord.manager.ui.screens.patching.VERTICAL_PADDING
import dev.wintry.manager.R
@Composable
fun FunFact(

View file

@ -4,7 +4,7 @@ import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import com.aliucord.manager.R
import dev.wintry.manager.R
@Composable
fun PatchingAppBar(

View file

@ -11,9 +11,9 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.aliucord.manager.R
import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.steps.base.StepState
import dev.wintry.manager.R
import kotlinx.collections.immutable.ImmutableList
@Composable

View file

@ -13,8 +13,8 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.unit.Dp
import com.aliucord.manager.R
import com.aliucord.manager.patcher.steps.base.StepState
import dev.wintry.manager.R
import kotlin.math.floor
import kotlin.math.roundToInt

View file

@ -22,7 +22,6 @@ import cafe.adriel.voyager.core.screen.Screen
import cafe.adriel.voyager.koin.koinScreenModel
import cafe.adriel.voyager.navigator.LocalNavigator
import cafe.adriel.voyager.navigator.currentOrThrow
import com.aliucord.manager.R
import com.aliucord.manager.ui.components.*
import com.aliucord.manager.ui.components.dialogs.NetworkWarningDialog
import com.aliucord.manager.ui.components.dialogs.UnknownSourcesPermissionDialog
@ -33,6 +32,7 @@ import com.aliucord.manager.ui.screens.patchopts.components.PatchOptionsAppBar
import com.aliucord.manager.ui.screens.patchopts.components.options.*
import com.aliucord.manager.ui.util.*
import com.aliucord.manager.util.*
import dev.wintry.manager.R
import kotlinx.coroutines.delay
import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize

View file

@ -11,8 +11,8 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.aliucord.manager.R
import com.aliucord.manager.ui.screens.patchopts.PackageNameState
import dev.wintry.manager.R
@Composable
fun PackageNameStateLabel(

View file

@ -5,9 +5,9 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import cafe.adriel.voyager.navigator.LocalNavigator
import com.aliucord.manager.R
import com.aliucord.manager.ui.components.BackButton
import com.aliucord.manager.ui.screens.settings.SettingsScreen
import dev.wintry.manager.R
@Composable
fun PatchOptionsAppBar(

View file

@ -5,8 +5,6 @@ import android.util.Log
import androidx.compose.runtime.*
import cafe.adriel.voyager.core.model.ScreenModel
import cafe.adriel.voyager.core.model.screenModelScope
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.ui.screens.plugins.model.PluginItem
import com.aliucord.manager.ui.screens.plugins.model.PluginManifest
@ -14,6 +12,8 @@ import com.aliucord.manager.ui.util.emptyImmutableList
import com.aliucord.manager.ui.util.toUnsafeImmutable
import com.aliucord.manager.util.*
import com.github.diamondminer88.zip.ZipReader
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
import kotlinx.collections.immutable.ImmutableList
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.*

View file

@ -17,12 +17,12 @@ import androidx.compose.ui.unit.dp
import androidx.lifecycle.compose.LifecycleResumeEffect
import cafe.adriel.voyager.core.screen.Screen
import cafe.adriel.voyager.koin.koinScreenModel
import com.aliucord.manager.R
import com.aliucord.manager.ui.components.BackButton
import com.aliucord.manager.ui.screens.plugins.components.*
import com.aliucord.manager.ui.screens.plugins.components.dialogs.UninstallPluginDialog
import com.aliucord.manager.ui.screens.plugins.model.PluginItem
import com.aliucord.manager.ui.util.paddings.*
import dev.wintry.manager.R
import kotlinx.collections.immutable.ImmutableList
import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize

View file

@ -20,8 +20,8 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextDecoration
import androidx.compose.ui.unit.dp
import coil3.compose.AsyncImage
import com.aliucord.manager.R
import com.aliucord.manager.ui.screens.plugins.model.PluginItem
import dev.wintry.manager.R
private val hyperLinkPattern = Regex("\\[(.+?)]\\((.+?\\))")

View file

@ -19,8 +19,8 @@ import androidx.compose.ui.text.*
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextDecoration
import androidx.compose.ui.unit.dp
import com.aliucord.manager.R
import com.aliucord.manager.ui.screens.plugins.model.PluginItem
import dev.wintry.manager.R
@Composable
fun PluginCard(

View file

@ -10,8 +10,8 @@ import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.unit.dp
import com.aliucord.manager.R
import com.aliucord.manager.ui.components.ResetToDefaultButton
import dev.wintry.manager.R
@Composable
fun PluginSearch(

View file

@ -8,7 +8,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.aliucord.manager.R
import dev.wintry.manager.R
@Composable
fun PluginsError(modifier: Modifier = Modifier) {

View file

@ -9,7 +9,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import com.aliucord.manager.R
import dev.wintry.manager.R
@Composable
fun PluginsNone(modifier: Modifier = Modifier) {

View file

@ -8,7 +8,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import com.aliucord.manager.R
import dev.wintry.manager.R
@Composable
fun UninstallPluginDialog(

View file

@ -1,18 +1,15 @@
package com.aliucord.manager.ui.screens.settings
import android.app.Application
import android.content.Intent
import android.util.Log
import androidx.compose.runtime.*
import androidx.core.content.FileProvider
import cafe.adriel.voyager.core.model.ScreenModel
import cafe.adriel.voyager.core.model.screenModelScope
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.manager.PreferencesManager
import com.aliucord.manager.ui.theme.Theme
import com.aliucord.manager.util.*
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
class SettingsModel(
private val application: Application,
@ -58,38 +55,40 @@ class SettingsModel(
}
fun shareApk() {
val file = paths.patchingWorkingDir().resolve("patched.apk")
val fileUri = FileProvider.getUriForFile(
/* context = */ application,
/* authority = */ "${BuildConfig.APPLICATION_ID}.provider",
/* file = */ file,
/* displayName = */ "Aliucord.apk",
)
val intent = Intent(Intent.ACTION_SEND)
.setType("application/vnd.android.package-archive")
.putExtra(Intent.EXTRA_STREAM, fileUri)
.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
.let {
Intent.createChooser(
/* target = */ it,
/* title = */ application.getString(R.string.log_action_export_apk),
)
}
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
try {
application.startActivity(intent)
} catch (t: Throwable) {
Log.w(BuildConfig.TAG, "Failed to share APK", t)
application.showToast(R.string.status_failed)
}
// TODO(Wintry): Implement this
application.showToast(R.string.settings_export_apk_not_implemented)
// val file = paths.patchingWorkingDir().resolve("patched.apk")
// val fileUri = FileProvider.getUriForFile(
// /* context = */ application,
// /* authority = */ "${BuildConfig.APPLICATION_ID}.provider",
// /* file = */ file,
// /* displayName = */ "Aliucord.apk",
// )
//
// val intent = Intent(Intent.ACTION_SEND)
// .setType("application/vnd.android.package-archive")
// .putExtra(Intent.EXTRA_STREAM, fileUri)
// .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
// .let {
// Intent.createChooser(
// /* target = */ it,
// /* title = */ application.getString(R.string.log_action_export_apk),
// )
// }
// .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
//
// try {
// application.startActivity(intent)
// } catch (t: Throwable) {
// Log.w(BuildConfig.TAG, "Failed to share APK", t)
// application.showToast(R.string.status_failed)
// }
}
companion object {
@Suppress("KotlinConstantConditions")
private val InstallInfo: String = """
Aliucord Manager
${BuildConfig.APPLICATION_NAME}
Version: ${BuildConfig.VERSION_NAME}
Version Code: ${BuildConfig.VERSION_CODE}
Release: ${if (BuildConfig.RELEASE) "Yes" else "No"}

View file

@ -20,11 +20,11 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import cafe.adriel.voyager.core.screen.Screen
import cafe.adriel.voyager.koin.koinScreenModel
import com.aliucord.manager.R
import com.aliucord.manager.ui.components.BackButton
import com.aliucord.manager.ui.components.MainActionButton
import com.aliucord.manager.ui.components.settings.*
import com.aliucord.manager.ui.screens.settings.components.ThemeDialog
import dev.wintry.manager.R
import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize

View file

@ -13,8 +13,8 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.aliucord.manager.R
import com.aliucord.manager.ui.theme.Theme
import dev.wintry.manager.R
@Composable
fun ThemeDialog(

View file

@ -13,8 +13,8 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import com.aliucord.manager.R
import com.google.accompanist.systemuicontroller.rememberSystemUiController
import dev.wintry.manager.R
@Composable
fun ManagerTheme(

View file

@ -3,7 +3,7 @@ package com.aliucord.manager.ui.theme
import androidx.compose.material3.Typography
import androidx.compose.ui.text.ExperimentalTextApi
import androidx.compose.ui.text.font.*
import com.aliucord.manager.R
import dev.wintry.manager.R
// This uses a variable font variant of Roboto.
// ref: https://medium.com/androiddevelopers/just-your-type-variable-fonts-in-compose-5bf63b357994

View file

@ -4,7 +4,7 @@ import android.os.Parcelable
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Immutable
import androidx.compose.ui.res.stringResource
import com.aliucord.manager.R
import dev.wintry.manager.R
import kotlinx.parcelize.Parcelize
@Parcelize

View file

@ -10,8 +10,10 @@ import android.util.Log
import androidx.annotation.StringRes
import androidx.core.app.*
import androidx.core.content.ContextCompat
import com.aliucord.manager.*
import com.aliucord.manager.MainActivity
import com.aliucord.manager.util.findActivity
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
object InstallNotifications {
private const val CHANNEL_ID = "installation"

View file

@ -9,7 +9,7 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.DialogProperties
import com.aliucord.manager.R
import dev.wintry.manager.R
import org.koin.androidx.compose.koinViewModel
@Composable

View file

@ -7,8 +7,6 @@ import androidx.compose.runtime.*
import androidx.core.net.toUri
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
import com.aliucord.manager.installers.InstallerResult
import com.aliucord.manager.manager.InstallerManager
import com.aliucord.manager.manager.InstallerSetting
@ -19,6 +17,8 @@ import com.aliucord.manager.network.services.WintryGithubService
import com.aliucord.manager.network.utils.SemVer
import com.aliucord.manager.network.utils.getOrThrow
import com.aliucord.manager.util.*
import dev.wintry.manager.BuildConfig
import dev.wintry.manager.R
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlin.system.exitProcess

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