Rename Wintry -> Shiggy across codebase (classes, files, resources)

This commit is contained in:
kmmiio99o 2025-10-13 19:31:16 +02:00
parent b7fcedc96a
commit e925c83dac
117 changed files with 359 additions and 431 deletions

View file

@ -51,7 +51,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: | run: |
tag="${{ github.ref_name }}" tag="${{ github.ref_name }}"
apk_file="wintry-manager-$tag.apk" apk_file="shiggy-manager-$tag.apk"
mv -T ./app/build/outputs/apk/release/app-release.apk "./$apk_file" mv -T ./app/build/outputs/apk/release/app-release.apk "./$apk_file"
gh release create "$tag" \ gh release create "$tag" \

View file

@ -1,9 +0,0 @@
## Backing up Aliucord
Note: This section is about the app installation itself, not the installed plugins, themes, and settings.
The patched Aliucord APK is tailored to the current device's Android version and CPU architecture.
Reusing a patched Aliucord APK from one device on another will likely break. Backing up and
restoring on another device will likely break.
Install Aliucord **directly via Manager** on the device you wish to use it on.

View file

@ -1,69 +0,0 @@
<div align="center">
<img src=".github/assets/wt-manager-preview.png" alt="Wintry Manager preview" />
<h1>Wintry Manager</h1>
<p>Install <a href="https://github.com/amsyarasyiq/wintry">Wintry</a> on your Android device! Based on Aliucord Manager.</p>
[![Discord](https://img.shields.io/discord/1394286025026572310?logo=discord&logoColor=white&style=for-the-badge&color=5865F2)](https://discord.gg/ybPB5tgD)
[![GitHub Stars](https://img.shields.io/github/stars/wtcord/wt-manager?logo=github&style=for-the-badge&color=ffd663)](https://github.com/wtcord/wt-manager/stargazers)
[![Build Status](https://img.shields.io/github/actions/workflow/status/wtcord/wt-manager/build.yml?label=Build&logo=github&style=for-the-badge&branch=main)](https://nightly.link/wtcord/wt-manager/workflows/build/main/app.zip)
![GitHub Downloads](https://img.shields.io/github/downloads/wtcord/wt-manager/total?style=for-the-badge&logo=github)
![Code Size](https://img.shields.io/github/languages/code-size/wtcord/wt-manager?style=for-the-badge)
[![GitHub License](https://img.shields.io/github/license/wtcord/wt-manager?style=for-the-badge&color=007ec6)](https://github.com/wtcord/wt-manager/blob/main/LICENSE)
</div>
## Prerequisites
Supported Android versions:
- Android 9 (SDK 28) - Android 16 QPR1 (SDK 36)
- Architectures: arm64, armeabi-v7, x86_64, x86
## Installation
1. Download the [latest release APK](https://github.com/wtcord/wt-manager/releases/latest)
1. Open and install Wintry Manager
- If you have not enabled "Install from unknown sources" for your browser via system settings, do so now.
1. Open Wintry Manager
1. Grant the permission requests
1. Click "New Install" or "Update" if you have previously installed Wintry.
- You may change how the Wintry app icon will look once installed.
1. Click "Install" and wait. Do not exit the app while it is running.
- If a failure occurs, it may be due to a variety of reasons:
- Poor internet connection
- Internet censorship / blocks (use a VPN or a different DNS server)
- Insufficient free storage (at least 500MB is recommended)
- If you are stuck, please ask for help in the `#support` channel of our [Discord](https://discord.gg/ybPB5tgD).
1. Click "Launch" or directly launch the newly installed Wintry app
1. Sign in to Discord
## Building
1. Install the prerequisites:
- Git
- [JDK 21+](https://adoptium.net/temurin/releases/?os=any&arch=any&version=21)
2. Clone the repo:
```shell
git clone https://github.com/wtcord/wt-manager && cd wt-manager
```
3. Build the project:
#### Linux/macOS
```shell
chmod +x gradlew && ./gradlew :app:packageStaging --stacktrace
```
#### Windows
```shell
.\gradlew.bat :app:packageStaging --stacktrace
```
4. Built APK will be located at `./app/build/outputs/apk/staging/app-staging.apk`
<!--
## Translations
This project handles crowd-sourced translations through Crowdin! If you happen to be fluent in one of the languages listed below,
then please feel free to contribute your translations!
[![Crowdin Translations](https://badges.crowdin.net/badge/light/crowdin-on-dark.png)](https://crowdin.com/project/aliucord-manager)
<br/><br/>
[![Translation Statistics](https://badges.awesome-crowdin.com/translation-15208176-543502.png)](https://crowdin.com/project/aliucord-manager)
-->

View file

@ -1,9 +0,0 @@
- Android API 21 support
- Unified permissions screen like in Aurora Store
- zip-android 64KiB alignment
- zip-android faster file deletion
- Better UI for conflicting package names
- Auto-rename package names when adding new installs...?
- `IconOptionsScreen`
- https://discord.com/channels/811255666990907402/1373756392892272691/1380726498725593220
- Reset button on PatchOptionsScreen?

View file

@ -18,24 +18,24 @@ val gitHasLocalCommits = gitCurrentBranch?.let { providers.execIgnoreCode("git",
val gitHasHasLocalChanges = providers.execIgnoreCode("git", "status", "-s").isNotEmpty() val gitHasHasLocalChanges = providers.execIgnoreCode("git", "status", "-s").isNotEmpty()
android { android {
namespace = "dev.wintry.manager" namespace = "dev.shiggy.manager"
compileSdk = 36 compileSdk = 36
defaultConfig { defaultConfig {
minSdk = 28 minSdk = 28
targetSdk = 36 targetSdk = 36
versionCode = 10_00_01 versionCode = 10_00_00
versionName = "1.0.1" versionName = "1.0.0"
vectorDrawables { vectorDrawables {
useSupportLibrary = true useSupportLibrary = true
} }
buildConfigField("String", "APPLICATION_NAME", "\"Wintry Manager\"") buildConfigField("String", "APPLICATION_NAME", "\"Shiggy Manager\"")
buildConfigField("String", "TAG", "\"WintryManager\"") buildConfigField("String", "TAG", "\"ShiggyManager\"")
buildConfigField("String", "GITHUB_ORG", "\"wtcord\"") buildConfigField("String", "GITHUB_ORG", "\"ShiggyCord\"")
buildConfigField("String", "SUPPORT_SERVER", "\"ybPB5tgD\"") buildConfigField("String", "SUPPORT_SERVER", "\"\"")
buildConfigField("String", "BACKEND_URL", "\"https://aliucord.com/\"") buildConfigField("String", "BACKEND_URL", "\"https://aliucord.com/\"")

View file

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

View file

@ -49,7 +49,7 @@ class ManagerApplication : Application() {
singleOf(::AliucordGithubService) singleOf(::AliucordGithubService)
singleOf(::AliucordMavenService) singleOf(::AliucordMavenService)
singleOf(::RNATrackerService) singleOf(::RNATrackerService)
singleOf(::WintryGithubService) singleOf(::ShiggyGithubService)
}) })
// UI Models // UI Models

View file

@ -1,7 +1,7 @@
package com.aliucord.manager.di package com.aliucord.manager.di
import android.app.Application import android.app.Application
import dev.wintry.manager.BuildConfig import dev.shiggy.manager.BuildConfig
import io.ktor.client.HttpClient import io.ktor.client.HttpClient
import io.ktor.client.call.HttpClientCall import io.ktor.client.call.HttpClientCall
import io.ktor.client.engine.okhttp.OkHttp import io.ktor.client.engine.okhttp.OkHttp

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -11,7 +11,7 @@ import androidx.core.content.getSystemService
import com.aliucord.manager.ui.screens.patchopts.PatchOptions import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import com.aliucord.manager.util.IS_PROBABLY_EMULATOR import com.aliucord.manager.util.IS_PROBABLY_EMULATOR
import com.aliucord.manager.util.isPlayProtectEnabled import com.aliucord.manager.util.isPlayProtectEnabled
import dev.wintry.manager.BuildConfig import dev.shiggy.manager.BuildConfig
import kotlinx.serialization.* import kotlinx.serialization.*
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import kotlinx.serialization.json.decodeFromStream import kotlinx.serialization.json.decodeFromStream

View file

@ -18,10 +18,10 @@ class PathManager(
val aliucordDir = Environment.getExternalStorageDirectory().resolve("Aliucord") val aliucordDir = Environment.getExternalStorageDirectory().resolve("Aliucord")
/** /**
* The Wintry folder where shared Wintry files are stored. * The Shiggy folder where shared Shiggy files are stored.
* Standard path: `~/Wintry` * Standard path: `~/Shiggy`
*/ */
val wintryDir = Environment.getExternalStorageDirectory().resolve("Wintry") val shiggyDir = Environment.getExternalStorageDirectory().resolve("Shiggy")
/** /**
* The directory in external storage in which plugins are stored by Aliucord. * The directory in external storage in which plugins are stored by Aliucord.
@ -36,7 +36,7 @@ class PathManager(
/** /**
* Global keystore used for signing APKs. * Global keystore used for signing APKs.
*/ */
val keystoreFile = wintryDir.resolve("ks.keystore") val keystoreFile = shiggyDir.resolve("ks.keystore")
/** /**
* The internal directory used for downloading components related to patching, and * The internal directory used for downloading components related to patching, and
@ -122,7 +122,7 @@ class PathManager(
fun cachedKotlinDex() = patchingDownloadDir fun cachedKotlinDex() = patchingDownloadDir
.resolve("kotlin.dex") .resolve("kotlin.dex")
fun cachedWintryXposed(version: SemVer) = patchingDownloadDir fun cachedShiggyXposed(version: SemVer) = patchingDownloadDir
.resolve("wt-xposed") .resolve("wt-xposed")
.resolve("$version.apk") .resolve("$version.apk")

View file

@ -9,8 +9,8 @@ import androidx.core.content.getSystemService
import androidx.core.net.toUri import androidx.core.net.toUri
import com.aliucord.manager.manager.download.IDownloadManager.ProgressListener import com.aliucord.manager.manager.download.IDownloadManager.ProgressListener
import com.aliucord.manager.manager.download.IDownloadManager.Result import com.aliucord.manager.manager.download.IDownloadManager.Result
import dev.wintry.manager.BuildConfig import dev.shiggy.manager.BuildConfig
import dev.wintry.manager.R import dev.shiggy.manager.R
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import java.io.File import java.io.File

View file

@ -9,7 +9,7 @@ import androidx.core.content.getSystemService
import com.aliucord.manager.manager.download.IDownloadManager.Result import com.aliucord.manager.manager.download.IDownloadManager.Result
import com.aliucord.manager.patcher.util.InsufficientStorageException import com.aliucord.manager.patcher.util.InsufficientStorageException
import com.aliucord.manager.util.IS_PROBABLY_EMULATOR import com.aliucord.manager.util.IS_PROBABLY_EMULATOR
import dev.wintry.manager.R import dev.shiggy.manager.R
import io.ktor.client.HttpClient import io.ktor.client.HttpClient
import io.ktor.client.request.header import io.ktor.client.request.header
import io.ktor.client.request.prepareGet import io.ktor.client.request.prepareGet

View file

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

View file

@ -6,12 +6,10 @@ import io.ktor.client.request.header
import io.ktor.client.request.url import io.ktor.client.request.url
import io.ktor.http.HttpHeaders import io.ktor.http.HttpHeaders
class WintryGithubService( class ShiggyGithubService(
private val http: HttpService, private val http: HttpService,
) { ) {
/** /** Fetches all the Manager releases with a 60s local cache. */
* Fetches all the Manager releases with a 60s local cache.
*/
suspend fun getManagerReleases(): ApiResponse<List<GithubRelease>> { suspend fun getManagerReleases(): ApiResponse<List<GithubRelease>> {
return http.request { return http.request {
url("https://api.github.com/repos/$ORG/$MANAGER_REPO/releases") url("https://api.github.com/repos/$ORG/$MANAGER_REPO/releases")
@ -19,9 +17,7 @@ class WintryGithubService(
} }
} }
/** /** Fetches the latest Xposed release with a 60s local cache. */
* Fetches the latest Xposed release with a 60s local cache.
*/
suspend fun getLatestXposedRelease(): ApiResponse<GithubRelease> { suspend fun getLatestXposedRelease(): ApiResponse<GithubRelease> {
return http.request { return http.request {
url("https://api.github.com/repos/$ORG/$XPOSED_REPO/releases/latest") url("https://api.github.com/repos/$ORG/$XPOSED_REPO/releases/latest")
@ -30,8 +26,8 @@ class WintryGithubService(
} }
companion object { companion object {
const val ORG = "wtcord" const val ORG = "kmmiio99o"
const val MANAGER_REPO = "wt-manager" const val MANAGER_REPO = "ShiggyManager"
const val XPOSED_REPO = "wt-xposed" const val XPOSED_REPO = "ShiggyXposed"
} }
} }

View file

@ -5,7 +5,7 @@ import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
/** /**
* Data stored inside patched APKs as ~~"aliucord.json"~~ "wintry.json" in order to preserve install-time information about Aliucord and the Manager. * Data stored inside patched APKs as ~~"aliucord.json"~~ "shiggy.json" in order to preserve install-time information about Aliucord and the Manager.
*/ */
@Serializable @Serializable
data class InstallMetadata( data class InstallMetadata(
@ -45,7 +45,7 @@ data class InstallMetadata(
val lspatchVersion: Int?, val lspatchVersion: Int?,
/** /**
* Version of WintryXposed embedded into the APK. * Version of ShiggyXposed embedded into the APK.
*/ */
val wintryXposedVersion: SemVer?, val shiggyXposedVersion: SemVer?,
) )

View file

@ -0,0 +1,31 @@
package com.aliucord.manager.patcher
import com.aliucord.manager.patcher.steps.download.*
import com.aliucord.manager.patcher.steps.install.*
import com.aliucord.manager.patcher.steps.patch.*
import com.aliucord.manager.patcher.steps.prepare.*
import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import kotlinx.collections.immutable.persistentListOf
class ShiggyPatchRunner(options: PatchOptions) : StepRunner() {
override val steps =
persistentListOf(
FetchDiscordRNAStep(options),
DowngradeCheckStep(options),
RestoreDownloadsStep(),
DownloadDiscordRNABaseStep(),
DownloadDiscordRNALangStep(),
DownloadDiscordRNAResourcesStep(),
DownloadDiscordRNALibStep(),
DownloadShiggyXposedStep(),
CopyDependenciesStep(),
PatchIconsStep(options),
PatchShiggyManifestStep(options),
SaveMetadataStep(options),
AlignmentStep(),
SigningStep(),
InjectShiggyXposedStep(),
InstallStep(options),
CleanupStep(),
)
}

View file

@ -9,8 +9,8 @@ import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.DownloadStep import com.aliucord.manager.patcher.steps.base.DownloadStep
import com.aliucord.manager.patcher.steps.base.Step import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.ui.util.InstallNotifications import com.aliucord.manager.ui.util.InstallNotifications
import dev.wintry.manager.BuildConfig import dev.shiggy.manager.BuildConfig
import dev.wintry.manager.R import dev.shiggy.manager.R
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent

View file

@ -1,34 +0,0 @@
package com.aliucord.manager.patcher
import com.aliucord.manager.patcher.steps.download.*
import com.aliucord.manager.patcher.steps.install.*
import com.aliucord.manager.patcher.steps.patch.*
import com.aliucord.manager.patcher.steps.prepare.*
import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import kotlinx.collections.immutable.persistentListOf
class WintryPatchRunner(options: PatchOptions) : StepRunner() {
override val steps = persistentListOf(
FetchDiscordRNAStep(options),
DowngradeCheckStep(options),
RestoreDownloadsStep(),
DownloadDiscordRNABaseStep(),
DownloadDiscordRNALangStep(),
DownloadDiscordRNAResourcesStep(),
DownloadDiscordRNALibStep(),
DownloadWintryXposedStep(),
CopyDependenciesStep(),
PatchIconsStep(options),
PatchWintryManifestStep(options),
SaveMetadataStep(options),
AlignmentStep(),
SigningStep(),
InjectWintryXposedStep(),
InstallStep(options),
CleanupStep(),
)
}

View file

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

View file

@ -10,7 +10,7 @@ import com.aliucord.manager.manager.download.KtorDownloadManager
import com.aliucord.manager.patcher.StepRunner import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.util.* import com.aliucord.manager.util.*
import dev.wintry.manager.R import dev.shiggy.manager.R
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent

View file

@ -9,7 +9,7 @@ import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.util.InsufficientStorageException import com.aliucord.manager.patcher.util.InsufficientStorageException
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject import org.koin.core.component.inject
import java.io.File import java.io.File

View file

@ -10,7 +10,7 @@ import com.aliucord.manager.patcher.steps.base.DownloadStep
import com.aliucord.manager.patcher.steps.base.IDexProvider import com.aliucord.manager.patcher.steps.base.IDexProvider
import com.aliucord.manager.patcher.steps.patch.ReorganizeDexStep import com.aliucord.manager.patcher.steps.patch.ReorganizeDexStep
import com.github.diamondminer88.zip.ZipReader import com.github.diamondminer88.zip.ZipReader
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject import org.koin.core.component.inject

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -11,8 +11,8 @@ import com.aliucord.manager.patcher.steps.base.*
import com.aliucord.manager.patcher.steps.patch.ReorganizeDexStep import com.aliucord.manager.patcher.steps.patch.ReorganizeDexStep
import com.aliucord.manager.patcher.steps.prepare.FetchInfoStep import com.aliucord.manager.patcher.steps.prepare.FetchInfoStep
import com.aliucord.manager.ui.components.dialogs.CustomComponentVersionPicker import com.aliucord.manager.ui.components.dialogs.CustomComponentVersionPicker
import dev.wintry.manager.BuildConfig import dev.shiggy.manager.BuildConfig
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject import org.koin.core.component.inject

View file

@ -5,7 +5,7 @@ import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.patcher.steps.base.DownloadStep import com.aliucord.manager.patcher.steps.base.DownloadStep
import com.aliucord.manager.patcher.steps.base.IDexProvider import com.aliucord.manager.patcher.steps.base.IDexProvider
import com.aliucord.manager.patcher.steps.patch.ReorganizeDexStep import com.aliucord.manager.patcher.steps.patch.ReorganizeDexStep
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject import org.koin.core.component.inject

View file

@ -11,8 +11,8 @@ import com.aliucord.manager.patcher.steps.base.DownloadStep
import com.aliucord.manager.patcher.steps.base.StepState import com.aliucord.manager.patcher.steps.base.StepState
import com.aliucord.manager.patcher.steps.prepare.FetchInfoStep import com.aliucord.manager.patcher.steps.prepare.FetchInfoStep
import com.aliucord.manager.ui.components.dialogs.CustomComponentVersionPicker import com.aliucord.manager.ui.components.dialogs.CustomComponentVersionPicker
import dev.wintry.manager.BuildConfig import dev.shiggy.manager.BuildConfig
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject import org.koin.core.component.inject

View file

@ -1,28 +1,28 @@
package com.aliucord.manager.patcher.steps.download package com.aliucord.manager.patcher.steps.download
import com.aliucord.manager.manager.PathManager import com.aliucord.manager.manager.PathManager
import com.aliucord.manager.network.services.WintryGithubService import com.aliucord.manager.network.services.ShiggyGithubService
import com.aliucord.manager.network.utils.SemVer import com.aliucord.manager.network.utils.SemVer
import com.aliucord.manager.network.utils.getOrThrow import com.aliucord.manager.network.utils.getOrThrow
import com.aliucord.manager.patcher.StepRunner import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.base.DownloadStep import com.aliucord.manager.patcher.steps.base.DownloadStep
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.inject import org.koin.core.component.inject
class DownloadWintryXposedStep : DownloadStep() { class DownloadShiggyXposedStep : DownloadStep() {
private val paths: PathManager by inject() private val paths: PathManager by inject()
private val wintryGithubService: WintryGithubService by inject() private val shiggyGithubService: ShiggyGithubService by inject()
override val localizedName = R.string.patch_step_dl_wtxposed override val localizedName = R.string.patch_step_dl_wtxposed
override val targetFile get() = paths.cachedWintryXposed(targetVersion) override val targetFile get() = paths.cachedShiggyXposed(targetVersion)
override lateinit var targetUrl: String override lateinit var targetUrl: String
lateinit var targetVersion: SemVer lateinit var targetVersion: SemVer
private set private set
override suspend fun execute(container: StepRunner) { override suspend fun execute(container: StepRunner) {
val latestRelease = wintryGithubService.getLatestXposedRelease().getOrThrow() val latestRelease = shiggyGithubService.getLatestXposedRelease().getOrThrow()
container.log("Latest WintryXposed release is ${latestRelease.name}") container.log("Latest ShiggyXposed release is ${latestRelease.name}")
targetVersion = SemVer.parse(latestRelease.name) targetVersion = SemVer.parse(latestRelease.name)
targetUrl = latestRelease.assets.first { it.name == "app-release.apk" }.browserDownloadUrl targetUrl = latestRelease.assets.first { it.name == "app-release.apk" }.browserDownloadUrl

View file

@ -7,7 +7,7 @@ import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.steps.download.CopyDependenciesStep import com.aliucord.manager.patcher.steps.download.CopyDependenciesStep
import com.github.diamondminer88.zip.* import com.github.diamondminer88.zip.*
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject import org.koin.core.component.inject

View file

@ -5,7 +5,7 @@ import com.aliucord.manager.manager.PreferencesManager
import com.aliucord.manager.patcher.StepRunner import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step import com.aliucord.manager.patcher.steps.base.Step
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject import org.koin.core.component.inject

View file

@ -4,9 +4,9 @@ import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.steps.download.CopyDependenciesStep import com.aliucord.manager.patcher.steps.download.CopyDependenciesStep
import com.aliucord.manager.patcher.steps.download.DownloadWintryXposedStep import com.aliucord.manager.patcher.steps.download.DownloadShiggyXposedStep
import com.aliucord.manager.patcher.util.Signer import com.aliucord.manager.patcher.util.Signer
import dev.wintry.manager.R import dev.shiggy.manager.R
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import org.lsposed.lspatch.share.LSPConfig import org.lsposed.lspatch.share.LSPConfig
@ -14,9 +14,9 @@ import org.lsposed.patch.LSPatch
import org.lsposed.patch.util.Logger import org.lsposed.patch.util.Logger
import java.io.File import java.io.File
class InjectWintryXposedStep : Step() { class InjectShiggyXposedStep : Step() {
override val group: StepGroup = StepGroup.Install override val group: StepGroup = StepGroup.Install
override val localizedName: Int = R.string.patch_step_inject_wintry override val localizedName: Int = R.string.patch_step_inject_shiggy
suspend fun patch( suspend fun patch(
container: StepRunner, container: StepRunner,
@ -58,10 +58,10 @@ class InjectWintryXposedStep : Step() {
override suspend fun execute(container: StepRunner) { override suspend fun execute(container: StepRunner) {
val apks = container.getStep<CopyDependenciesStep>().patchedApks val apks = container.getStep<CopyDependenciesStep>().patchedApks
val xposed = container.getStep<DownloadWintryXposedStep>().targetFile val xposed = container.getStep<DownloadShiggyXposedStep>().targetFile
container.log("Adding WintryXposed module with LSPatch") container.log("Adding ShiggyXposed module with LSPatch")
container.log("WintryXposed path = ${xposed.absolutePath}") container.log("ShiggyXposed path = ${xposed.absolutePath}")
// Create temporary folder in working directory // Create temporary folder in working directory
val tempDir = apks.first().parentFile!!.resolve("lspatched") val tempDir = apks.first().parentFile!!.resolve("lspatched")

View file

@ -14,7 +14,7 @@ import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import com.aliucord.manager.ui.util.InstallNotifications import com.aliucord.manager.ui.util.InstallNotifications
import com.aliucord.manager.util.isPackageInstalled import com.aliucord.manager.util.isPackageInstalled
import com.aliucord.manager.util.isPlayProtectEnabled import com.aliucord.manager.util.isPlayProtectEnabled
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject import org.koin.core.component.inject

View file

@ -5,7 +5,7 @@ import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.steps.download.CopyDependenciesStep import com.aliucord.manager.patcher.steps.download.CopyDependenciesStep
import com.aliucord.manager.patcher.util.Signer import com.aliucord.manager.patcher.util.Signer
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
/** /**

View file

@ -8,7 +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.CopyDependenciesStep
import com.aliucord.manager.patcher.steps.download.DownloadAliuhookStep import com.aliucord.manager.patcher.steps.download.DownloadAliuhookStep
import com.github.diamondminer88.zip.* import com.github.diamondminer88.zip.*
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
/** /**

View file

@ -30,7 +30,7 @@ import com.aliucord.manager.ui.screens.patchopts.PatchOptions.IconReplacement
import com.aliucord.manager.util.getResBytes import com.aliucord.manager.util.getResBytes
import com.github.diamondminer88.zip.ZipWriter import com.github.diamondminer88.zip.ZipWriter
import com.google.devrel.gmscore.tools.apk.arsc.* import com.google.devrel.gmscore.tools.apk.arsc.*
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject import org.koin.core.component.inject
import java.io.ByteArrayOutputStream import java.io.ByteArrayOutputStream

View file

@ -8,7 +8,7 @@ import com.aliucord.manager.patcher.util.ManifestPatcher
import com.aliucord.manager.ui.screens.patchopts.PatchOptions import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import com.github.diamondminer88.zip.ZipReader import com.github.diamondminer88.zip.ZipReader
import com.github.diamondminer88.zip.ZipWriter import com.github.diamondminer88.zip.ZipWriter
import dev.wintry.manager.R import dev.shiggy.manager.R
/** /**
* Patch the APK's AndroidManifest.xml * Patch the APK's AndroidManifest.xml

View file

@ -3,7 +3,7 @@ package com.aliucord.manager.patcher.steps.patch
import com.aliucord.manager.patcher.util.ManifestPatcher import com.aliucord.manager.patcher.util.ManifestPatcher
import com.aliucord.manager.ui.screens.patchopts.PatchOptions import com.aliucord.manager.ui.screens.patchopts.PatchOptions
class PatchWintryManifestStep(val options: PatchOptions) : PatchManifestStep(options) { class PatchShiggyManifestStep(val options: PatchOptions) : PatchManifestStep(options) {
override fun patchManifest(manifestBytes: ByteArray, isBase: Boolean) = ManifestPatcher.patchManifest( override fun patchManifest(manifestBytes: ByteArray, isBase: Boolean) = ManifestPatcher.patchManifest(
manifestBytes = manifestBytes, manifestBytes = manifestBytes,
packageName = options.packageName, packageName = options.packageName,

View file

@ -7,7 +7,7 @@ import com.aliucord.manager.patcher.steps.base.IDexProvider
import com.aliucord.manager.patcher.steps.base.Step import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.steps.download.CopyDependenciesStep import com.aliucord.manager.patcher.steps.download.CopyDependenciesStep
import com.github.diamondminer88.zip.* import com.github.diamondminer88.zip.*
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject import org.koin.core.component.inject

View file

@ -8,8 +8,8 @@ import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.steps.download.* import com.aliucord.manager.patcher.steps.download.*
import com.aliucord.manager.ui.screens.patchopts.PatchOptions import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import com.github.diamondminer88.zip.ZipWriter import com.github.diamondminer88.zip.ZipWriter
import dev.wintry.manager.BuildConfig import dev.shiggy.manager.BuildConfig
import dev.wintry.manager.R import dev.shiggy.manager.R
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject import org.koin.core.component.inject
@ -31,7 +31,7 @@ class SaveMetadataStep(private val options: PatchOptions) : Step(), KoinComponen
val aliuhook = container.getStepOrNull<DownloadAliuhookStep>() val aliuhook = container.getStepOrNull<DownloadAliuhookStep>()
val injector = container.getStepOrNull<DownloadInjectorStep>() val injector = container.getStepOrNull<DownloadInjectorStep>()
val patches = container.getStepOrNull<DownloadPatchesStep>() val patches = container.getStepOrNull<DownloadPatchesStep>()
val wintryXposed = container.getStepOrNull<DownloadWintryXposedStep>() val shiggyXposed = container.getStepOrNull<DownloadShiggyXposedStep>()
val metadata = InstallMetadata( val metadata = InstallMetadata(
options = options, options = options,
@ -41,12 +41,12 @@ class SaveMetadataStep(private val options: PatchOptions) : Step(), KoinComponen
injectorVersion = injector?.targetVersion, injectorVersion = injector?.targetVersion,
patchesVersion = patches?.targetVersion, patchesVersion = patches?.targetVersion,
lspatchVersion = LSPConfig.instance.VERSION_CODE, lspatchVersion = LSPConfig.instance.VERSION_CODE,
wintryXposedVersion = wintryXposed?.targetVersion, shiggyXposedVersion = shiggyXposed?.targetVersion,
) )
container.log("Writing serialized install metadata to APK") container.log("Writing serialized install metadata to APK")
ZipWriter(apk, /* append = */ true).use { ZipWriter(apk, /* append = */ true).use {
it.writeEntry("wintry.json", json.encodeToString<InstallMetadata>(metadata)) it.writeEntry("shiggy.json", json.encodeToString<InstallMetadata>(metadata))
} }
} }
} }

View file

@ -17,7 +17,7 @@ import com.github.diamondminer88.zip.ZipReader
import com.github.difflib.DiffUtils import com.github.difflib.DiffUtils
import com.github.difflib.UnifiedDiffUtils import com.github.difflib.UnifiedDiffUtils
import com.github.difflib.patch.Patch import com.github.difflib.patch.Patch
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject import org.koin.core.component.inject
import java.io.FileNotFoundException import java.io.FileNotFoundException

View file

@ -10,7 +10,7 @@ import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.steps.base.StepState import com.aliucord.manager.patcher.steps.base.StepState
import com.aliucord.manager.ui.screens.patchopts.PatchOptions import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import com.aliucord.manager.util.* import com.aliucord.manager.util.*
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject import org.koin.core.component.inject

View file

@ -7,7 +7,7 @@ import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.ui.screens.patchopts.PatchOptions import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import com.aliucord.manager.ui.screens.patchopts.VersionPreference import com.aliucord.manager.ui.screens.patchopts.VersionPreference
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject import org.koin.core.component.inject
import kotlin.properties.Delegates import kotlin.properties.Delegates

View file

@ -7,7 +7,7 @@ import com.aliucord.manager.network.utils.getOrThrow
import com.aliucord.manager.patcher.StepRunner import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step import com.aliucord.manager.patcher.steps.base.Step
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject import org.koin.core.component.inject

View file

@ -6,7 +6,7 @@ import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.steps.StepGroup import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.Step import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.steps.base.StepState import com.aliucord.manager.patcher.steps.base.StepState
import dev.wintry.manager.R import dev.shiggy.manager.R
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.koin.core.component.inject import org.koin.core.component.inject

View file

@ -150,7 +150,7 @@ object ManifestPatcher {
"name", "name",
android.R.attr.name, android.R.attr.name,
TYPE_STRING, TYPE_STRING,
"isWintry" /* originally "isAliucord" */ "isShiggy" /* originally "isAliucord" */
) )
attr(ANDROID_NAMESPACE, "value", android.R.attr.value, TYPE_INT_BOOLEAN, 1) attr(ANDROID_NAMESPACE, "value", android.R.attr.value, TYPE_INT_BOOLEAN, 1)
} }

View file

@ -7,7 +7,7 @@ package com.aliucord.manager.patcher.util
import com.aliucord.manager.manager.PathManager import com.aliucord.manager.manager.PathManager
import com.android.apksig.ApkSigner import com.android.apksig.ApkSigner
import dev.wintry.manager.BuildConfig import dev.shiggy.manager.BuildConfig
import org.bouncycastle.asn1.x500.X500Name import org.bouncycastle.asn1.x500.X500Name
import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
import org.bouncycastle.cert.X509v3CertificateBuilder import org.bouncycastle.cert.X509v3CertificateBuilder
@ -32,7 +32,7 @@ object Signer : KoinComponent {
// Create new keystore if it doesn't exist // Create new keystore if it doesn't exist
if (!paths.keystoreFile.exists()) { if (!paths.keystoreFile.exists()) {
paths.wintryDir.mkdirs() paths.shiggyDir.mkdirs()
newKeystore(paths.keystoreFile) newKeystore(paths.keystoreFile)
} }

View file

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

View file

@ -19,7 +19,7 @@ import androidx.compose.ui.unit.dp
import coil3.compose.SubcomposeAsyncImage import coil3.compose.SubcomposeAsyncImage
import com.aliucord.manager.network.models.Contributor import com.aliucord.manager.network.models.Contributor
import com.valentinilk.shimmer.shimmer import com.valentinilk.shimmer.shimmer
import dev.wintry.manager.R import dev.shiggy.manager.R
@Composable @Composable
fun ContributorCommitsItem( fun ContributorCommitsItem(

View file

@ -19,7 +19,7 @@ import androidx.core.graphics.applyCanvas
import androidx.core.graphics.createBitmap import androidx.core.graphics.createBitmap
import androidx.core.graphics.drawable.toDrawable import androidx.core.graphics.drawable.toDrawable
import com.aliucord.manager.ui.screens.patchopts.PatchOptions.IconReplacement import com.aliucord.manager.ui.screens.patchopts.PatchOptions.IconReplacement
import dev.wintry.manager.R import dev.shiggy.manager.R
// Sizing information is obtained from here: https://medium.com/google-design/designing-adaptive-icons-515af294c783 // 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.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import dev.wintry.manager.R import dev.shiggy.manager.R
@Composable @Composable
fun LoadFailure(modifier: Modifier = Modifier) { fun LoadFailure(modifier: Modifier = Modifier) {

View file

@ -12,8 +12,8 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import dev.wintry.manager.BuildConfig import dev.shiggy.manager.BuildConfig
import dev.wintry.manager.R import dev.shiggy.manager.R
@Composable @Composable
fun ProjectHeader( fun ProjectHeader(
@ -28,7 +28,7 @@ fun ProjectHeader(
modifier = modifier, modifier = modifier,
) { ) {
Image( Image(
painter = painterResource(if (aliucord) R.drawable.ic_aliucord_logo else R.drawable.ic_rounded_wintry), painter = painterResource(if (aliucord) R.drawable.ic_aliucord_logo else R.drawable.ic_rounded_shiggy),
contentDescription = null, contentDescription = null,
modifier = Modifier modifier = Modifier
.padding(bottom = 6.dp) .padding(bottom = 6.dp)
@ -36,7 +36,7 @@ fun ProjectHeader(
) )
Text( Text(
text = stringResource(if (aliucord) R.string.aliucord else R.string.wintry), text = stringResource(if (aliucord) R.string.aliucord else R.string.shiggy),
style = MaterialTheme.typography.titleMedium.copy(fontSize = 26.sp) style = MaterialTheme.typography.titleMedium.copy(fontSize = 26.sp)
) )

View file

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

View file

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

View file

@ -8,7 +8,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import dev.wintry.manager.R import dev.shiggy.manager.R
@Composable @Composable
fun InstallerAbortDialog( 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.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.DialogProperties import androidx.compose.ui.window.DialogProperties
import dev.wintry.manager.R import dev.shiggy.manager.R
@Composable @Composable
fun NetworkWarningDialog( fun NetworkWarningDialog(

View file

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

View file

@ -19,8 +19,8 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.DialogProperties import androidx.compose.ui.window.DialogProperties
import androidx.core.net.toUri import androidx.core.net.toUri
import com.google.accompanist.permissions.* import com.google.accompanist.permissions.*
import dev.wintry.manager.BuildConfig import dev.shiggy.manager.BuildConfig
import dev.wintry.manager.R import dev.shiggy.manager.R
@Composable @Composable
@OptIn(ExperimentalPermissionsApi::class) @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.unit.dp
import androidx.compose.ui.window.DialogProperties import androidx.compose.ui.window.DialogProperties
import androidx.core.net.toUri import androidx.core.net.toUri
import dev.wintry.manager.BuildConfig import dev.shiggy.manager.BuildConfig
import dev.wintry.manager.R import dev.shiggy.manager.R
@Composable @Composable
fun UnknownSourcesPermissionDialog() { fun UnknownSourcesPermissionDialog() {

View file

@ -11,7 +11,7 @@ import androidx.compose.ui.tooling.preview.*
import com.aliucord.manager.ui.screens.patching.components.TextBanner import com.aliucord.manager.ui.screens.patching.components.TextBanner
import com.aliucord.manager.ui.theme.ManagerTheme import com.aliucord.manager.ui.theme.ManagerTheme
import com.aliucord.manager.ui.theme.customColors import com.aliucord.manager.ui.theme.customColors
import dev.wintry.manager.R import dev.shiggy.manager.R
@Composable @Composable
@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES) @Preview(uiMode = Configuration.UI_MODE_NIGHT_YES)

View file

@ -14,7 +14,7 @@ import com.aliucord.manager.ui.screens.iconopts.IconOptionsMode
import com.aliucord.manager.ui.screens.iconopts.IconOptionsScreenContent import com.aliucord.manager.ui.screens.iconopts.IconOptionsScreenContent
import com.aliucord.manager.ui.screens.patchopts.PatchOptions.IconReplacement import com.aliucord.manager.ui.screens.patchopts.PatchOptions.IconReplacement
import com.aliucord.manager.ui.theme.ManagerTheme import com.aliucord.manager.ui.theme.ManagerTheme
import dev.wintry.manager.R import dev.shiggy.manager.R
import dev.zt64.compose.pipette.HsvColor import dev.zt64.compose.pipette.HsvColor
import java.io.ByteArrayOutputStream import java.io.ByteArrayOutputStream

View file

@ -23,14 +23,13 @@ import cafe.adriel.voyager.koin.koinScreenModel
import com.aliucord.manager.ui.components.* import com.aliucord.manager.ui.components.*
import com.aliucord.manager.ui.screens.about.components.LeadContributor import com.aliucord.manager.ui.screens.about.components.LeadContributor
import com.aliucord.manager.ui.util.paddings.* import com.aliucord.manager.ui.util.paddings.*
import dev.wintry.manager.R import dev.shiggy.manager.R
import kotlinx.parcelize.IgnoredOnParcel import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
@Parcelize @Parcelize
class AboutScreen : Screen, Parcelable { class AboutScreen : Screen, Parcelable {
@IgnoredOnParcel @IgnoredOnParcel override val key = "About"
override val key = "About"
@Composable @Composable
override fun Content() { override fun Content() {
@ -43,99 +42,94 @@ class AboutScreen : Screen, Parcelable {
@Composable @Composable
fun AboutScreenContent(state: State<AboutScreenState>) { fun AboutScreenContent(state: State<AboutScreenState>) {
Scaffold( Scaffold(
topBar = { topBar = {
TopAppBar( TopAppBar(
title = { Text(stringResource(R.string.navigation_about_manager)) }, title = { Text(stringResource(R.string.navigation_about_manager)) },
navigationIcon = { BackButton() }, navigationIcon = { BackButton() },
) )
} }
) { paddingValues -> ) { paddingValues ->
LazyColumn( LazyColumn(
verticalArrangement = Arrangement.spacedBy(2.dp), verticalArrangement = Arrangement.spacedBy(2.dp),
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,
contentPadding = paddingValues contentPadding =
.exclude(PaddingValuesSides.Horizontal + PaddingValuesSides.Top) paddingValues
.add(PaddingValues(vertical = 16.dp)), .exclude(PaddingValuesSides.Horizontal + PaddingValuesSides.Top)
modifier = Modifier .add(PaddingValues(vertical = 16.dp)),
.padding(paddingValues.exclude(PaddingValuesSides.Bottom)) modifier =
.padding(horizontal = 14.dp), Modifier.padding(paddingValues.exclude(PaddingValuesSides.Bottom))
.padding(horizontal = 14.dp),
) { ) {
item(key = "MANAGER_CREDIT_DISCLAIMER_BANNER") { item(key = "MANAGER_CREDIT_DISCLAIMER_BANNER") {
Box( Box(
contentAlignment = Alignment.Center, contentAlignment = Alignment.Center,
modifier = Modifier modifier =
.padding(bottom = 24.dp) Modifier.padding(bottom = 24.dp)
.border( .border(
width = 2.dp, width = 2.dp,
color = MaterialTheme.colorScheme.surfaceVariant, color = MaterialTheme.colorScheme.surfaceVariant,
shape = MaterialTheme.shapes.medium shape = MaterialTheme.shapes.medium
) )
.clip(MaterialTheme.shapes.medium) .clip(MaterialTheme.shapes.medium)
.background(MaterialTheme.colorScheme.surfaceContainerHigh) .background(MaterialTheme.colorScheme.surfaceContainerHigh)
) { ) {
Row( Row(
horizontalArrangement = Arrangement.spacedBy(12.dp), horizontalArrangement = Arrangement.spacedBy(12.dp),
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
modifier = Modifier modifier = Modifier.padding(horizontal = 20.dp, vertical = 14.dp)
.padding(horizontal = 20.dp, vertical = 14.dp)
) { ) {
Text( Text(
text = stringResource(R.string.about_manager_credit_disclaimer_notice), text =
style = MaterialTheme.typography.labelMedium, stringResource(
R.string.about_manager_credit_disclaimer_notice
),
style = MaterialTheme.typography.labelMedium,
) )
} }
} }
} }
item(key = "PROJECT_HEADER") { item(key = "PROJECT_HEADER") { ProjectHeader(aliucord = true) }
ProjectHeader(aliucord = true)
}
item(key = "HEADER_DIVIDER") { item(key = "HEADER_DIVIDER") {
TextDivider( TextDivider(
text = stringResource(R.string.contributors_lead), text = stringResource(R.string.contributors_lead),
modifier = Modifier.padding(top = 18.dp, bottom = 20.dp), modifier = Modifier.padding(top = 18.dp, bottom = 20.dp),
) )
} }
item(key = "MAIN_CONTRIBUTORS") { item(key = "MAIN_CONTRIBUTORS") {
Row( Row(
horizontalArrangement = Arrangement.SpaceEvenly, horizontalArrangement = Arrangement.SpaceEvenly,
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
) { ) {
LeadContributor("Vendicated", "the ven") LeadContributor("C0C0B01", "Creator of Kettu")
LeadContributor("Juby210", "Fox") LeadContributor("kmmiio99o", "Creator of ShiggyCord")
LeadContributor("rushii", "explod", "rushiiMachine") LeadContributor("pylixonly", "Creator of Bunny")
} }
} }
item(key = "CONTRIBUTORS_DIVIDER") { item(key = "CONTRIBUTORS_DIVIDER") {
TextDivider( TextDivider(
text = stringResource(R.string.contributors), text = stringResource(R.string.contributors),
modifier = Modifier.padding(top = 16.dp, bottom = 6.dp) modifier = Modifier.padding(top = 16.dp, bottom = 6.dp)
) )
} }
when (val state = state.value) { when (val state = state.value) {
AboutScreenState.Loading -> item(key = "CONTRIBUTIONS_LOADING") { AboutScreenState.Loading ->
Box( item(key = "CONTRIBUTIONS_LOADING") {
contentAlignment = Alignment.Center, Box(
content = { CircularProgressIndicator() }, contentAlignment = Alignment.Center,
modifier = Modifier content = { CircularProgressIndicator() },
.fillMaxWidth() modifier = Modifier.fillMaxWidth().padding(vertical = 38.dp),
.padding(vertical = 38.dp), )
) }
} AboutScreenState.Failure ->
item(key = "LOAD_FAILURE") {
AboutScreenState.Failure -> item(key = "LOAD_FAILURE") { LoadFailure(modifier = Modifier.fillMaxSize().padding(vertical = 38.dp))
LoadFailure( }
modifier = Modifier
.fillMaxSize()
.padding(vertical = 38.dp)
)
}
is AboutScreenState.Loaded -> { is AboutScreenState.Loaded -> {
items(state.contributors, key = { it.username }) { user -> items(state.contributors, key = { it.username }) { user ->
ContributorCommitsItem(user) ContributorCommitsItem(user)

View file

@ -24,8 +24,8 @@ import com.aliucord.manager.ui.util.DiscordVersion
import com.aliucord.manager.ui.util.toUnsafeImmutable import com.aliucord.manager.ui.util.toUnsafeImmutable
import com.aliucord.manager.util.* import com.aliucord.manager.util.*
import com.github.diamondminer88.zip.ZipReader import com.github.diamondminer88.zip.ZipReader
import dev.wintry.manager.BuildConfig import dev.shiggy.manager.BuildConfig
import dev.wintry.manager.R import dev.shiggy.manager.R
import kotlinx.coroutines.* import kotlinx.coroutines.*
import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock import kotlinx.coroutines.sync.withLock
@ -37,7 +37,7 @@ class HomeModel(
private val application: Application, private val application: Application,
private val github: AliucordGithubService, private val github: AliucordGithubService,
private val maven: AliucordMavenService, private val maven: AliucordMavenService,
private val wtGithub: WintryGithubService, private val wtGithub: ShiggyGithubService,
private val rnaTracker: RNATrackerService, private val rnaTracker: RNATrackerService,
private val json: Json, private val json: Json,
) : ScreenModel { ) : ScreenModel {
@ -47,7 +47,7 @@ class HomeModel(
private val refreshingLock = Mutex() private val refreshingLock = Mutex()
private var remoteDataJson: BuildInfo? = null private var remoteDataJson: BuildInfo? = null
private var trackerIndexJson: RNATrackerIndex? = null private var trackerIndexJson: RNATrackerIndex? = null
private var latestWintryXposedVersion: SemVer? = null private var latestShiggyXposedVersion: SemVer? = null
private var latestAliuhookVersion: SemVer? = null private var latestAliuhookVersion: SemVer? = null
init { init {
@ -109,7 +109,7 @@ class HomeModel(
val metadata = try { val metadata = try {
val applicationInfo = application.packageManager.getApplicationInfo(packageName, 0) val applicationInfo = application.packageManager.getApplicationInfo(packageName, 0)
val metadataFile = ZipReader(applicationInfo.publicSourceDir) val metadataFile = ZipReader(applicationInfo.publicSourceDir)
.use { it.openEntry("wintry.json")?.read() } .use { it.openEntry("shiggy.json")?.read() }
@OptIn(ExperimentalSerializationApi::class) @OptIn(ExperimentalSerializationApi::class)
metadataFile?.let { json.decodeFromStream<InstallMetadata>(it.inputStream()) } metadataFile?.let { json.decodeFromStream<InstallMetadata>(it.inputStream()) }
@ -190,7 +190,7 @@ class HomeModel(
private suspend fun fetchRemoteData() { private suspend fun fetchRemoteData() {
listOf( listOf(
// // These aren't needed by Wintry // // These aren't needed by Shiggy
// screenModelScope.launch(Dispatchers.IO) { // screenModelScope.launch(Dispatchers.IO) {
// github.getBuildData().fold( // github.getBuildData().fold(
// success = { remoteDataJson = it }, // success = { remoteDataJson = it },
@ -211,14 +211,14 @@ class HomeModel(
}, },
screenModelScope.launch(Dispatchers.IO) { screenModelScope.launch(Dispatchers.IO) {
wtGithub.getLatestXposedRelease().fold( wtGithub.getLatestXposedRelease().fold(
success = { latestWintryXposedVersion = SemVer.parse(it.name) }, success = { latestShiggyXposedVersion = SemVer.parse(it.name) },
fail = { Log.w(BuildConfig.TAG, "Failed to fetch latest WintryXposed version", it) }, fail = { Log.w(BuildConfig.TAG, "Failed to fetch latest ShiggyXposed version", it) },
) )
}, },
).joinAll() ).joinAll()
if (trackerIndexJson == null /* remoteDataJson == null || latestAliuhookVersion == null */ || latestWintryXposedVersion == null) { if (trackerIndexJson == null /* remoteDataJson == null || latestAliuhookVersion == null */ || latestShiggyXposedVersion == null) {
mainThread { application.showToast(R.string.home_network_fail) } mainThread { application.showToast(R.string.home_network_fail) }
} }
} }
@ -230,8 +230,8 @@ class HomeModel(
return application.packageManager return application.packageManager
.getInstalledPackages(PackageManager.GET_META_DATA) .getInstalledPackages(PackageManager.GET_META_DATA)
.filter { .filter {
// Wintry doesn't have "legacy installer" whatsoever // Shiggy doesn't have "legacy installer" whatsoever
return@filter it.applicationInfo?.metaData?.containsKey("isWintry") == true return@filter it.applicationInfo?.metaData?.containsKey("isShiggy") == true
// // Packages installed via the legacy Installer do not have the metadata marker // // Packages installed via the legacy Installer do not have the metadata marker
// val isAliucordPkg = it.packageName == "com.aliucord" // val isAliucordPkg = it.packageName == "com.aliucord"
@ -241,11 +241,11 @@ class HomeModel(
} }
/** /**
* Checks whether the current Wintry installation is up-to-date. * Checks whether the current Shiggy installation is up-to-date.
* *
* Currently mirrors the behavior of Bunny Manager by directly comparing against * Currently mirrors the behavior of Bunny Manager by directly comparing against
* the latest available Discord and WintryXposed release. This is a temporary approach and will remain * the latest available Discord and ShiggyXposed release. This is a temporary approach and will remain
* in place until Wintry adds support for version pinning. * in place until Shiggy adds support for version pinning.
*/ */
private fun isInstallationUpToDate(pkg: PackageInfo): Boolean? { private fun isInstallationUpToDate(pkg: PackageInfo): Boolean? {
val trackerData = trackerIndexJson ?: return null val trackerData = trackerIndexJson ?: return null
@ -257,7 +257,7 @@ class HomeModel(
// Try to parse install metadata. If none present, install was made via legacy installer. // Try to parse install metadata. If none present, install was made via legacy installer.
val apkPath = pkg.applicationInfo?.publicSourceDir ?: return false val apkPath = pkg.applicationInfo?.publicSourceDir ?: return false
val installMetadata = try { val installMetadata = try {
val metadataFile = ZipReader(apkPath).use { it.openEntry("wintry.json")?.read() } val metadataFile = ZipReader(apkPath).use { it.openEntry("shiggy.json")?.read() }
?: return false ?: return false
@OptIn(ExperimentalSerializationApi::class) @OptIn(ExperimentalSerializationApi::class)
@ -274,6 +274,6 @@ class HomeModel(
VersionPreference.Custom -> return true VersionPreference.Custom -> return true
} }
return latestByPref == versionCode && installMetadata.wintryXposedVersion == latestWintryXposedVersion return latestByPref == versionCode && installMetadata.shiggyXposedVersion == latestShiggyXposedVersion
} }
} }

View file

@ -34,7 +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.PaddingValuesSides
import com.aliucord.manager.ui.util.paddings.exclude import com.aliucord.manager.ui.util.paddings.exclude
import com.aliucord.manager.util.* import com.aliucord.manager.util.*
import dev.wintry.manager.R import dev.shiggy.manager.R
import kotlinx.parcelize.IgnoredOnParcel import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize

View file

@ -8,7 +8,7 @@ import cafe.adriel.voyager.navigator.LocalNavigator
import com.aliucord.manager.ui.screens.about.AboutScreen import com.aliucord.manager.ui.screens.about.AboutScreen
import com.aliucord.manager.ui.screens.logs.LogsListScreen import com.aliucord.manager.ui.screens.logs.LogsListScreen
import com.aliucord.manager.ui.screens.settings.SettingsScreen import com.aliucord.manager.ui.screens.settings.SettingsScreen
import dev.wintry.manager.R import dev.shiggy.manager.R
@Composable @Composable
fun HomeAppBar() { fun HomeAppBar() {

View file

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

View file

@ -18,7 +18,7 @@ import androidx.compose.ui.unit.dp
import com.aliucord.manager.ui.components.SegmentedButton import com.aliucord.manager.ui.components.SegmentedButton
import com.aliucord.manager.ui.components.VersionDisplay import com.aliucord.manager.ui.components.VersionDisplay
import com.aliucord.manager.ui.screens.home.InstallData import com.aliucord.manager.ui.screens.home.InstallData
import dev.wintry.manager.R import dev.shiggy.manager.R
@Composable @Composable
fun InstalledItemCard( fun InstalledItemCard(
@ -88,7 +88,7 @@ fun InstalledItemCard(
horizontalArrangement = Arrangement.spacedBy(2.dp), horizontalArrangement = Arrangement.spacedBy(2.dp),
modifier = Modifier.clip(MaterialTheme.shapes.large), modifier = Modifier.clip(MaterialTheme.shapes.large),
) { ) {
// // Plugins cannot be managed externally yet in Wintry // // Plugins cannot be managed externally yet in Shiggy
// SegmentedButton( // SegmentedButton(
// icon = painterResource(R.drawable.ic_extension), // icon = painterResource(R.drawable.ic_extension),
// text = stringResource(R.string.plugins_title), // text = stringResource(R.string.plugins_title),

View file

@ -6,7 +6,7 @@ import androidx.compose.runtime.Immutable
enum class IconOptionsMode { enum class IconOptionsMode {
Original, Original,
OldDiscord, OldDiscord,
Wintry, Shiggy,
Aliucord, Aliucord,
CustomColor, CustomColor,
CustomImage, CustomImage,

View file

@ -10,8 +10,8 @@ import cafe.adriel.voyager.core.model.ScreenModel
import cafe.adriel.voyager.core.model.screenModelScope import cafe.adriel.voyager.core.model.screenModelScope
import com.aliucord.manager.ui.screens.patchopts.PatchOptions.IconReplacement import com.aliucord.manager.ui.screens.patchopts.PatchOptions.IconReplacement
import com.aliucord.manager.util.* import com.aliucord.manager.util.*
import dev.wintry.manager.BuildConfig import dev.shiggy.manager.BuildConfig
import dev.wintry.manager.R import dev.shiggy.manager.R
import dev.zt64.compose.pipette.HsvColor import dev.zt64.compose.pipette.HsvColor
import java.io.IOException import java.io.IOException
@ -74,9 +74,9 @@ class IconOptionsModel(
// ---------- Other ---------- // // ---------- Other ---------- //
init { init {
when (prefilledOptions) { when (prefilledOptions) {
is IconReplacement.CustomColor if prefilledOptions.color == IconReplacement.WintryColor -> { is IconReplacement.CustomColor if prefilledOptions.color == IconReplacement.ShiggyColor -> {
changeMode(IconOptionsMode.Wintry) changeMode(IconOptionsMode.Shiggy)
initSelectedColor(IconReplacement.WintryColor) initSelectedColor(IconReplacement.ShiggyColor)
} }
is IconReplacement.CustomColor if prefilledOptions.color == IconReplacement.AliucordColor -> { is IconReplacement.CustomColor if prefilledOptions.color == IconReplacement.AliucordColor -> {
@ -104,7 +104,7 @@ class IconOptionsModel(
return when (mode) { return when (mode) {
IconOptionsMode.Original -> IconReplacement.Original IconOptionsMode.Original -> IconReplacement.Original
IconOptionsMode.OldDiscord -> IconReplacement.OldDiscord IconOptionsMode.OldDiscord -> IconReplacement.OldDiscord
IconOptionsMode.Wintry -> IconReplacement.CustomColor(IconReplacement.WintryColor) IconOptionsMode.Shiggy -> IconReplacement.CustomColor(IconReplacement.ShiggyColor)
IconOptionsMode.Aliucord -> IconReplacement.CustomColor(IconReplacement.AliucordColor) IconOptionsMode.Aliucord -> IconReplacement.CustomColor(IconReplacement.AliucordColor)
IconOptionsMode.CustomColor -> IconReplacement.CustomColor(color = selectedColor.toColor()) IconOptionsMode.CustomColor -> IconReplacement.CustomColor(color = selectedColor.toColor())
IconOptionsMode.CustomImage -> IconReplacement.CustomImage( IconOptionsMode.CustomImage -> IconReplacement.CustomImage(

View file

@ -41,7 +41,7 @@ import com.aliucord.manager.ui.screens.patchopts.PatchOptionsScreen
import com.aliucord.manager.ui.util.ColorSaver import com.aliucord.manager.ui.util.ColorSaver
import com.aliucord.manager.ui.util.throttledState import com.aliucord.manager.ui.util.throttledState
import com.aliucord.manager.util.back import com.aliucord.manager.util.back
import dev.wintry.manager.R import dev.shiggy.manager.R
import dev.zt64.compose.pipette.CircularColorPicker import dev.zt64.compose.pipette.CircularColorPicker
import dev.zt64.compose.pipette.HsvColor import dev.zt64.compose.pipette.HsvColor
import kotlinx.parcelize.IgnoredOnParcel import kotlinx.parcelize.IgnoredOnParcel
@ -120,10 +120,10 @@ fun IconOptionsScreenContent(
onClick = remember { { setMode(IconOptionsMode.OldDiscord) } }, onClick = remember { { setMode(IconOptionsMode.OldDiscord) } },
) )
RadioSelectorItem( RadioSelectorItem(
name = stringResource(R.string.wintry), name = stringResource(R.string.shiggy),
description = stringResource(R.string.iconopts_variant_desc_wintry), description = stringResource(R.string.iconopts_variant_desc_shiggy),
selected = mode == IconOptionsMode.Wintry, selected = mode == IconOptionsMode.Shiggy,
onClick = remember { { setMode(IconOptionsMode.Wintry) } }, onClick = remember { { setMode(IconOptionsMode.Shiggy) } },
) )
RadioSelectorItem( RadioSelectorItem(
name = stringResource(R.string.aliucord), name = stringResource(R.string.aliucord),
@ -220,7 +220,7 @@ private fun IconPreview(
IconOptionsMode.Original -> PatchOptions.IconReplacement.BlurpleColor IconOptionsMode.Original -> PatchOptions.IconReplacement.BlurpleColor
IconOptionsMode.OldDiscord -> PatchOptions.IconReplacement.OldBlurpleColor IconOptionsMode.OldDiscord -> PatchOptions.IconReplacement.OldBlurpleColor
IconOptionsMode.Aliucord -> PatchOptions.IconReplacement.AliucordColor IconOptionsMode.Aliucord -> PatchOptions.IconReplacement.AliucordColor
IconOptionsMode.Wintry -> PatchOptions.IconReplacement.WintryColor IconOptionsMode.Shiggy -> PatchOptions.IconReplacement.ShiggyColor
IconOptionsMode.CustomColor -> selectedColor.toColor() IconOptionsMode.CustomColor -> selectedColor.toColor()
IconOptionsMode.CustomImage -> error("unreachable") IconOptionsMode.CustomImage -> error("unreachable")
} }

View file

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

View file

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

View file

@ -18,7 +18,7 @@ import com.aliucord.manager.ui.components.Label
import com.aliucord.manager.ui.screens.log.components.LogAppBar import com.aliucord.manager.ui.screens.log.components.LogAppBar
import com.aliucord.manager.ui.screens.log.components.LogTextArea import com.aliucord.manager.ui.screens.log.components.LogTextArea
import com.aliucord.manager.util.back import com.aliucord.manager.util.back
import dev.wintry.manager.R import dev.shiggy.manager.R
import kotlinx.parcelize.IgnoredOnParcel import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import org.koin.core.parameter.parametersOf import org.koin.core.parameter.parametersOf

View file

@ -10,8 +10,8 @@ import cafe.adriel.voyager.core.model.screenModelScope
import com.aliucord.manager.manager.InstallLogData import com.aliucord.manager.manager.InstallLogData
import com.aliucord.manager.manager.InstallLogManager import com.aliucord.manager.manager.InstallLogManager
import com.aliucord.manager.util.* import com.aliucord.manager.util.*
import dev.wintry.manager.BuildConfig import dev.shiggy.manager.BuildConfig
import dev.wintry.manager.R import dev.shiggy.manager.R
class LogScreenModel( class LogScreenModel(
private val installId: String, private val installId: String,

View file

@ -5,7 +5,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import com.aliucord.manager.ui.components.BackButton import com.aliucord.manager.ui.components.BackButton
import dev.wintry.manager.R import dev.shiggy.manager.R
@Composable @Composable
fun LogAppBar( fun LogAppBar(

View file

@ -8,7 +8,7 @@ import cafe.adriel.voyager.core.model.ScreenModel
import cafe.adriel.voyager.core.model.screenModelScope import cafe.adriel.voyager.core.model.screenModelScope
import com.aliucord.manager.manager.InstallLogManager import com.aliucord.manager.manager.InstallLogManager
import com.aliucord.manager.util.* import com.aliucord.manager.util.*
import dev.wintry.manager.R import dev.shiggy.manager.R
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toImmutableList import kotlinx.collections.immutable.toImmutableList

View file

@ -21,7 +21,7 @@ import com.aliucord.manager.patcher.steps.base.StepState
import com.aliucord.manager.ui.screens.logs.LogEntry 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.StepStateIcon
import com.aliucord.manager.ui.screens.patching.components.TimeElapsed import com.aliucord.manager.ui.screens.patching.components.TimeElapsed
import dev.wintry.manager.R import dev.shiggy.manager.R
@Composable @Composable
fun LogEntryCard( fun LogEntryCard(

View file

@ -7,7 +7,7 @@ import androidx.compose.ui.res.stringResource
import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.LocalNavigator
import com.aliucord.manager.ui.components.BackButton import com.aliucord.manager.ui.components.BackButton
import com.aliucord.manager.ui.screens.settings.SettingsScreen import com.aliucord.manager.ui.screens.settings.SettingsScreen
import dev.wintry.manager.R import dev.shiggy.manager.R
@Composable @Composable
fun LogsListAppBar( 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.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import dev.wintry.manager.R import dev.shiggy.manager.R
@Composable @Composable
fun LogsNone(modifier: Modifier = Modifier) { 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.res.stringResource
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import dev.wintry.manager.R import dev.shiggy.manager.R
@Composable @Composable
fun DeleteLogsDialog( fun DeleteLogsDialog(

View file

@ -40,8 +40,8 @@ import com.aliucord.manager.ui.util.spacedByLastAtBottom
import com.aliucord.manager.ui.util.thenIf import com.aliucord.manager.ui.util.thenIf
import com.aliucord.manager.util.back import com.aliucord.manager.util.back
import com.aliucord.manager.util.isIgnoringBatteryOptimizations import com.aliucord.manager.util.isIgnoringBatteryOptimizations
import dev.wintry.manager.BuildConfig import dev.shiggy.manager.BuildConfig
import dev.wintry.manager.R import dev.shiggy.manager.R
import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.persistentListOf
import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.filter
import kotlinx.parcelize.IgnoredOnParcel import kotlinx.parcelize.IgnoredOnParcel

View file

@ -9,7 +9,7 @@ import cafe.adriel.voyager.core.model.StateScreenModel
import cafe.adriel.voyager.core.model.screenModelScope import cafe.adriel.voyager.core.model.screenModelScope
import com.aliucord.manager.manager.* import com.aliucord.manager.manager.*
import com.aliucord.manager.patcher.StepRunner import com.aliucord.manager.patcher.StepRunner
import com.aliucord.manager.patcher.WintryPatchRunner import com.aliucord.manager.patcher.ShiggyPatchRunner
import com.aliucord.manager.patcher.steps.StepGroup import com.aliucord.manager.patcher.steps.StepGroup
import com.aliucord.manager.patcher.steps.base.* import com.aliucord.manager.patcher.steps.base.*
import com.aliucord.manager.patcher.steps.install.InstallStep import com.aliucord.manager.patcher.steps.install.InstallStep
@ -17,8 +17,8 @@ import com.aliucord.manager.patcher.util.InsufficientStorageException
import com.aliucord.manager.ui.screens.patchopts.PatchOptions import com.aliucord.manager.ui.screens.patchopts.PatchOptions
import com.aliucord.manager.ui.util.toUnsafeImmutable import com.aliucord.manager.ui.util.toUnsafeImmutable
import com.aliucord.manager.util.* import com.aliucord.manager.util.*
import dev.wintry.manager.BuildConfig import dev.shiggy.manager.BuildConfig
import dev.wintry.manager.R import dev.shiggy.manager.R
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.ImmutableMap import kotlinx.collections.immutable.ImmutableMap
import kotlinx.coroutines.* import kotlinx.coroutines.*
@ -125,7 +125,7 @@ class PatchingScreenModel(
} }
private suspend fun startPatchRunner() { private suspend fun startPatchRunner() {
val runner = WintryPatchRunner(options) val runner = ShiggyPatchRunner(options)
.also { stepRunner = it } .also { stepRunner = it }
val newSteps = runner.steps.groupBy { it.group } val newSteps = runner.steps.groupBy { it.group }

View file

@ -14,7 +14,7 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import com.aliucord.manager.ui.screens.patching.PatchingScreenState import com.aliucord.manager.ui.screens.patching.PatchingScreenState
import com.aliucord.manager.ui.screens.patching.VERTICAL_PADDING import com.aliucord.manager.ui.screens.patching.VERTICAL_PADDING
import dev.wintry.manager.R import dev.shiggy.manager.R
@Composable @Composable
fun FunFact( fun FunFact(

View file

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

View file

@ -13,7 +13,7 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import com.aliucord.manager.patcher.steps.base.Step import com.aliucord.manager.patcher.steps.base.Step
import com.aliucord.manager.patcher.steps.base.StepState import com.aliucord.manager.patcher.steps.base.StepState
import dev.wintry.manager.R import dev.shiggy.manager.R
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
@Composable @Composable

View file

@ -14,7 +14,7 @@ import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.Dp
import com.aliucord.manager.patcher.steps.base.StepState import com.aliucord.manager.patcher.steps.base.StepState
import dev.wintry.manager.R import dev.shiggy.manager.R
import kotlin.math.floor import kotlin.math.floor
import kotlin.math.roundToInt import kotlin.math.roundToInt

View file

@ -109,9 +109,9 @@ data class PatchOptions(
val AliucordColor = Color(0xFF00C853) val AliucordColor = Color(0xFF00C853)
/** /**
* The default Wintry background color. * The default Shiggy background color.
*/ */
val WintryColor = Color(0xFF133E87) val ShiggyColor = Color(0xFF133E87)
/** /**
* The new Discord blurple used in icons. * The new Discord blurple used in icons.
@ -127,10 +127,10 @@ data class PatchOptions(
companion object { companion object {
val Default = PatchOptions( val Default = PatchOptions(
appName = "Wintry", appName = "Shiggy",
packageName = "dev.wintry.app", packageName = "dev.shiggy.app",
debuggable = false, debuggable = false,
iconReplacement = IconReplacement.CustomColor(IconReplacement.WintryColor), iconReplacement = IconReplacement.CustomColor(IconReplacement.ShiggyColor),
versionPreference = VersionPreference.Stable, versionPreference = VersionPreference.Stable,
customVersionCode = "", customVersionCode = "",
) )

View file

@ -32,7 +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.screens.patchopts.components.options.*
import com.aliucord.manager.ui.util.* import com.aliucord.manager.ui.util.*
import com.aliucord.manager.util.* import com.aliucord.manager.util.*
import dev.wintry.manager.R import dev.shiggy.manager.R
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.parcelize.IgnoredOnParcel import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
@ -85,7 +85,7 @@ class PatchOptionsScreen(
selectedColor = when (iconModel.mode) { selectedColor = when (iconModel.mode) {
IconOptionsMode.Original -> PatchOptions.IconReplacement.BlurpleColor IconOptionsMode.Original -> PatchOptions.IconReplacement.BlurpleColor
IconOptionsMode.OldDiscord -> PatchOptions.IconReplacement.OldBlurpleColor IconOptionsMode.OldDiscord -> PatchOptions.IconReplacement.OldBlurpleColor
IconOptionsMode.Wintry -> PatchOptions.IconReplacement.WintryColor IconOptionsMode.Shiggy -> PatchOptions.IconReplacement.ShiggyColor
IconOptionsMode.Aliucord -> PatchOptions.IconReplacement.AliucordColor IconOptionsMode.Aliucord -> PatchOptions.IconReplacement.AliucordColor
IconOptionsMode.CustomColor -> iconModel.selectedColor.toColor() IconOptionsMode.CustomColor -> iconModel.selectedColor.toColor()
IconOptionsMode.CustomImage -> null IconOptionsMode.CustomImage -> null

View file

@ -12,7 +12,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import com.aliucord.manager.ui.screens.patchopts.PackageNameState import com.aliucord.manager.ui.screens.patchopts.PackageNameState
import dev.wintry.manager.R import dev.shiggy.manager.R
@Composable @Composable
fun PackageNameStateLabel( fun PackageNameStateLabel(

View file

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

View file

@ -12,8 +12,8 @@ import com.aliucord.manager.ui.util.emptyImmutableList
import com.aliucord.manager.ui.util.toUnsafeImmutable import com.aliucord.manager.ui.util.toUnsafeImmutable
import com.aliucord.manager.util.* import com.aliucord.manager.util.*
import com.github.diamondminer88.zip.ZipReader import com.github.diamondminer88.zip.ZipReader
import dev.wintry.manager.BuildConfig import dev.shiggy.manager.BuildConfig
import dev.wintry.manager.R import dev.shiggy.manager.R
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.* import kotlinx.coroutines.flow.*

View file

@ -22,7 +22,7 @@ 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.components.dialogs.UninstallPluginDialog
import com.aliucord.manager.ui.screens.plugins.model.PluginItem import com.aliucord.manager.ui.screens.plugins.model.PluginItem
import com.aliucord.manager.ui.util.paddings.* import com.aliucord.manager.ui.util.paddings.*
import dev.wintry.manager.R import dev.shiggy.manager.R
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
import kotlinx.parcelize.IgnoredOnParcel import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize

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