Rename Wintry -> Shiggy across codebase (classes, files, resources)
This commit is contained in:
parent
b7fcedc96a
commit
e925c83dac
117 changed files with 359 additions and 431 deletions
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
|
|
@ -51,7 +51,7 @@ jobs:
|
|||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
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"
|
||||
|
||||
gh release create "$tag" \
|
||||
|
|
|
|||
9
INFO.md
9
INFO.md
|
|
@ -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.
|
||||
69
README.md
69
README.md
|
|
@ -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>
|
||||
|
||||
[](https://discord.gg/ybPB5tgD)
|
||||
[](https://github.com/wtcord/wt-manager/stargazers)
|
||||
[](https://nightly.link/wtcord/wt-manager/workflows/build/main/app.zip)
|
||||

|
||||

|
||||
[](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!
|
||||
|
||||
[](https://crowdin.com/project/aliucord-manager)
|
||||
<br/><br/>
|
||||
[](https://crowdin.com/project/aliucord-manager)
|
||||
-->
|
||||
9
TODO.md
9
TODO.md
|
|
@ -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?
|
||||
|
|
@ -18,24 +18,24 @@ val gitHasLocalCommits = gitCurrentBranch?.let { providers.execIgnoreCode("git",
|
|||
val gitHasHasLocalChanges = providers.execIgnoreCode("git", "status", "-s").isNotEmpty()
|
||||
|
||||
android {
|
||||
namespace = "dev.wintry.manager"
|
||||
namespace = "dev.shiggy.manager"
|
||||
compileSdk = 36
|
||||
|
||||
defaultConfig {
|
||||
minSdk = 28
|
||||
targetSdk = 36
|
||||
versionCode = 10_00_01
|
||||
versionName = "1.0.1"
|
||||
versionCode = 10_00_00
|
||||
versionName = "1.0.0"
|
||||
|
||||
vectorDrawables {
|
||||
useSupportLibrary = true
|
||||
}
|
||||
|
||||
buildConfigField("String", "APPLICATION_NAME", "\"Wintry Manager\"")
|
||||
buildConfigField("String", "TAG", "\"WintryManager\"")
|
||||
buildConfigField("String", "APPLICATION_NAME", "\"Shiggy Manager\"")
|
||||
buildConfigField("String", "TAG", "\"ShiggyManager\"")
|
||||
|
||||
buildConfigField("String", "GITHUB_ORG", "\"wtcord\"")
|
||||
buildConfigField("String", "SUPPORT_SERVER", "\"ybPB5tgD\"")
|
||||
buildConfigField("String", "GITHUB_ORG", "\"ShiggyCord\"")
|
||||
buildConfigField("String", "SUPPORT_SERVER", "\"\"")
|
||||
|
||||
buildConfigField("String", "BACKEND_URL", "\"https://aliucord.com/\"")
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +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 dev.shiggy.manager.BuildConfig
|
||||
import org.koin.android.ext.android.inject
|
||||
|
||||
class MainActivity : ComponentActivity() {
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ class ManagerApplication : Application() {
|
|||
singleOf(::AliucordGithubService)
|
||||
singleOf(::AliucordMavenService)
|
||||
singleOf(::RNATrackerService)
|
||||
singleOf(::WintryGithubService)
|
||||
singleOf(::ShiggyGithubService)
|
||||
})
|
||||
|
||||
// UI Models
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.aliucord.manager.di
|
||||
|
||||
import android.app.Application
|
||||
import dev.wintry.manager.BuildConfig
|
||||
import dev.shiggy.manager.BuildConfig
|
||||
import io.ktor.client.HttpClient
|
||||
import io.ktor.client.call.HttpClientCall
|
||||
import io.ktor.client.engine.okhttp.OkHttp
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.aliucord.manager.installers
|
||||
|
||||
import android.content.Context
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
@Parcelize
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import android.util.Log
|
|||
import androidx.core.content.ContextCompat
|
||||
import com.aliucord.manager.installers.Installer
|
||||
import com.aliucord.manager.util.isMiui
|
||||
import dev.wintry.manager.BuildConfig
|
||||
import dev.shiggy.manager.BuildConfig
|
||||
import kotlinx.coroutines.suspendCancellableCoroutine
|
||||
import java.io.File
|
||||
import kotlin.coroutines.resume
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import android.content.Context
|
|||
import android.content.pm.PackageInstaller
|
||||
import android.os.Parcelable
|
||||
import com.aliucord.manager.installers.InstallerResult
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import android.util.Log
|
|||
import android.widget.Toast
|
||||
import com.aliucord.manager.installers.InstallerResult
|
||||
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,
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import android.content.pm.PackageInstaller
|
|||
import com.aliucord.manager.installers.InstallerResult
|
||||
import com.aliucord.manager.installers.UnknownInstallerError
|
||||
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
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import androidx.core.content.getSystemService
|
|||
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 dev.shiggy.manager.BuildConfig
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.json.Json
|
||||
import kotlinx.serialization.json.decodeFromStream
|
||||
|
|
|
|||
|
|
@ -18,10 +18,10 @@ class PathManager(
|
|||
val aliucordDir = Environment.getExternalStorageDirectory().resolve("Aliucord")
|
||||
|
||||
/**
|
||||
* The Wintry folder where shared Wintry files are stored.
|
||||
* Standard path: `~/Wintry`
|
||||
* The Shiggy folder where shared Shiggy files are stored.
|
||||
* 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.
|
||||
|
|
@ -36,7 +36,7 @@ class PathManager(
|
|||
/**
|
||||
* 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
|
||||
|
|
@ -122,7 +122,7 @@ class PathManager(
|
|||
fun cachedKotlinDex() = patchingDownloadDir
|
||||
.resolve("kotlin.dex")
|
||||
|
||||
fun cachedWintryXposed(version: SemVer) = patchingDownloadDir
|
||||
fun cachedShiggyXposed(version: SemVer) = patchingDownloadDir
|
||||
.resolve("wt-xposed")
|
||||
.resolve("$version.apk")
|
||||
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@ import androidx.core.content.getSystemService
|
|||
import androidx.core.net.toUri
|
||||
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 dev.shiggy.manager.BuildConfig
|
||||
import dev.shiggy.manager.R
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.delay
|
||||
import java.io.File
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import androidx.core.content.getSystemService
|
|||
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 dev.shiggy.manager.R
|
||||
import io.ktor.client.HttpClient
|
||||
import io.ktor.client.request.header
|
||||
import io.ktor.client.request.prepareGet
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package com.aliucord.manager.network.services
|
|||
|
||||
import android.util.Log
|
||||
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.request.HttpRequestBuilder
|
||||
import io.ktor.client.request.request
|
||||
|
|
|
|||
|
|
@ -6,12 +6,10 @@ import io.ktor.client.request.header
|
|||
import io.ktor.client.request.url
|
||||
import io.ktor.http.HttpHeaders
|
||||
|
||||
class WintryGithubService(
|
||||
private val http: HttpService,
|
||||
class ShiggyGithubService(
|
||||
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>> {
|
||||
return http.request {
|
||||
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> {
|
||||
return http.request {
|
||||
url("https://api.github.com/repos/$ORG/$XPOSED_REPO/releases/latest")
|
||||
|
|
@ -30,8 +26,8 @@ class WintryGithubService(
|
|||
}
|
||||
|
||||
companion object {
|
||||
const val ORG = "wtcord"
|
||||
const val MANAGER_REPO = "wt-manager"
|
||||
const val XPOSED_REPO = "wt-xposed"
|
||||
const val ORG = "kmmiio99o"
|
||||
const val MANAGER_REPO = "ShiggyManager"
|
||||
const val XPOSED_REPO = "ShiggyXposed"
|
||||
}
|
||||
}
|
||||
|
|
@ -5,7 +5,7 @@ import com.aliucord.manager.ui.screens.patchopts.PatchOptions
|
|||
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
|
||||
data class InstallMetadata(
|
||||
|
|
@ -45,7 +45,7 @@ data class InstallMetadata(
|
|||
val lspatchVersion: Int?,
|
||||
|
||||
/**
|
||||
* Version of WintryXposed embedded into the APK.
|
||||
* Version of ShiggyXposed embedded into the APK.
|
||||
*/
|
||||
val wintryXposedVersion: SemVer?,
|
||||
val shiggyXposedVersion: SemVer?,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
)
|
||||
}
|
||||
|
|
@ -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.Step
|
||||
import com.aliucord.manager.ui.util.InstallNotifications
|
||||
import dev.wintry.manager.BuildConfig
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.BuildConfig
|
||||
import dev.shiggy.manager.R
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.coroutines.delay
|
||||
import org.koin.core.component.KoinComponent
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
)
|
||||
}
|
||||
|
|
@ -3,7 +3,7 @@ package com.aliucord.manager.patcher.steps
|
|||
import android.os.Parcelable
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.compose.runtime.Immutable
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ 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 dev.shiggy.manager.R
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.koin.core.component.KoinComponent
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ 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 dev.shiggy.manager.R
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
import java.io.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.patch.ReorganizeDexStep
|
||||
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.inject
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.aliucord.manager.patcher.steps.download
|
|||
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 dev.shiggy.manager.R
|
||||
import org.koin.core.component.inject
|
||||
|
||||
class DownloadDiscordRNABaseStep : DownloadDiscordRNAStep() {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.aliucord.manager.patcher.steps.download
|
|||
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 dev.shiggy.manager.R
|
||||
import org.koin.core.component.inject
|
||||
|
||||
class DownloadDiscordRNALangStep : DownloadDiscordRNAStep() {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import android.os.Build
|
|||
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 dev.shiggy.manager.R
|
||||
import org.koin.core.component.inject
|
||||
|
||||
class DownloadDiscordRNALibStep : DownloadDiscordRNAStep() {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.aliucord.manager.patcher.steps.download
|
|||
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 dev.shiggy.manager.R
|
||||
import org.koin.core.component.inject
|
||||
|
||||
class DownloadDiscordRNAResourcesStep : DownloadDiscordRNAStep() {
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ package com.aliucord.manager.patcher.steps.download
|
|||
import androidx.compose.runtime.Stable
|
||||
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 dev.shiggy.manager.BuildConfig
|
||||
import dev.shiggy.manager.R
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
|
||||
|
|
|
|||
|
|
@ -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.prepare.FetchInfoStep
|
||||
import com.aliucord.manager.ui.components.dialogs.CustomComponentVersionPicker
|
||||
import dev.wintry.manager.BuildConfig
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.BuildConfig
|
||||
import dev.shiggy.manager.R
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
|
||||
|
|
|
|||
|
|
@ -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.IDexProvider
|
||||
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.inject
|
||||
|
||||
|
|
|
|||
|
|
@ -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.prepare.FetchInfoStep
|
||||
import com.aliucord.manager.ui.components.dialogs.CustomComponentVersionPicker
|
||||
import dev.wintry.manager.BuildConfig
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.BuildConfig
|
||||
import dev.shiggy.manager.R
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
|
||||
|
|
|
|||
|
|
@ -1,28 +1,28 @@
|
|||
package com.aliucord.manager.patcher.steps.download
|
||||
|
||||
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.getOrThrow
|
||||
import com.aliucord.manager.patcher.StepRunner
|
||||
import com.aliucord.manager.patcher.steps.base.DownloadStep
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
import org.koin.core.component.inject
|
||||
|
||||
class DownloadWintryXposedStep : DownloadStep() {
|
||||
class DownloadShiggyXposedStep : DownloadStep() {
|
||||
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 targetFile get() = paths.cachedWintryXposed(targetVersion)
|
||||
override val targetFile get() = paths.cachedShiggyXposed(targetVersion)
|
||||
override lateinit var targetUrl: String
|
||||
|
||||
lateinit var targetVersion: SemVer
|
||||
private set
|
||||
|
||||
override suspend fun execute(container: StepRunner) {
|
||||
val latestRelease = wintryGithubService.getLatestXposedRelease().getOrThrow()
|
||||
container.log("Latest WintryXposed release is ${latestRelease.name}")
|
||||
val latestRelease = shiggyGithubService.getLatestXposedRelease().getOrThrow()
|
||||
container.log("Latest ShiggyXposed release is ${latestRelease.name}")
|
||||
|
||||
targetVersion = SemVer.parse(latestRelease.name)
|
||||
targetUrl = latestRelease.assets.first { it.name == "app-release.apk" }.browserDownloadUrl
|
||||
|
|
@ -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.download.CopyDependenciesStep
|
||||
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.inject
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ 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 dev.shiggy.manager.R
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@ 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.steps.download.DownloadShiggyXposedStep
|
||||
import com.aliucord.manager.patcher.util.Signer
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.lsposed.lspatch.share.LSPConfig
|
||||
|
|
@ -14,9 +14,9 @@ import org.lsposed.patch.LSPatch
|
|||
import org.lsposed.patch.util.Logger
|
||||
import java.io.File
|
||||
|
||||
class InjectWintryXposedStep : Step() {
|
||||
class InjectShiggyXposedStep : Step() {
|
||||
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(
|
||||
container: StepRunner,
|
||||
|
|
@ -58,10 +58,10 @@ class InjectWintryXposedStep : Step() {
|
|||
|
||||
override suspend fun execute(container: StepRunner) {
|
||||
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("WintryXposed path = ${xposed.absolutePath}")
|
||||
container.log("Adding ShiggyXposed module with LSPatch")
|
||||
container.log("ShiggyXposed path = ${xposed.absolutePath}")
|
||||
|
||||
// Create temporary folder in working directory
|
||||
val tempDir = apks.first().parentFile!!.resolve("lspatched")
|
||||
|
|
@ -14,7 +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 dev.shiggy.manager.R
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
|
||||
|
|
|
|||
|
|
@ -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.download.CopyDependenciesStep
|
||||
import com.aliucord.manager.patcher.util.Signer
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
import org.koin.core.component.KoinComponent
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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.DownloadAliuhookStep
|
||||
import com.github.diamondminer88.zip.*
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
import org.koin.core.component.KoinComponent
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -30,7 +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 dev.shiggy.manager.R
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
import java.io.ByteArrayOutputStream
|
||||
|
|
|
|||
|
|
@ -8,7 +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
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
/**
|
||||
* Patch the APK's AndroidManifest.xml
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.aliucord.manager.patcher.steps.patch
|
|||
import com.aliucord.manager.patcher.util.ManifestPatcher
|
||||
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(
|
||||
manifestBytes = manifestBytes,
|
||||
packageName = options.packageName,
|
||||
|
|
@ -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.download.CopyDependenciesStep
|
||||
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.inject
|
||||
|
||||
|
|
|
|||
|
|
@ -8,8 +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 dev.shiggy.manager.BuildConfig
|
||||
import dev.shiggy.manager.R
|
||||
import kotlinx.serialization.json.Json
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
|
|
@ -31,7 +31,7 @@ class SaveMetadataStep(private val options: PatchOptions) : Step(), KoinComponen
|
|||
val aliuhook = container.getStepOrNull<DownloadAliuhookStep>()
|
||||
val injector = container.getStepOrNull<DownloadInjectorStep>()
|
||||
val patches = container.getStepOrNull<DownloadPatchesStep>()
|
||||
val wintryXposed = container.getStepOrNull<DownloadWintryXposedStep>()
|
||||
val shiggyXposed = container.getStepOrNull<DownloadShiggyXposedStep>()
|
||||
|
||||
val metadata = InstallMetadata(
|
||||
options = options,
|
||||
|
|
@ -41,12 +41,12 @@ class SaveMetadataStep(private val options: PatchOptions) : Step(), KoinComponen
|
|||
injectorVersion = injector?.targetVersion,
|
||||
patchesVersion = patches?.targetVersion,
|
||||
lspatchVersion = LSPConfig.instance.VERSION_CODE,
|
||||
wintryXposedVersion = wintryXposed?.targetVersion,
|
||||
shiggyXposedVersion = shiggyXposed?.targetVersion,
|
||||
)
|
||||
|
||||
container.log("Writing serialized install metadata to APK")
|
||||
ZipWriter(apk, /* append = */ true).use {
|
||||
it.writeEntry("wintry.json", json.encodeToString<InstallMetadata>(metadata))
|
||||
it.writeEntry("shiggy.json", json.encodeToString<InstallMetadata>(metadata))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,7 +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 dev.shiggy.manager.R
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
import java.io.FileNotFoundException
|
||||
|
|
|
|||
|
|
@ -10,7 +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 dev.shiggy.manager.R
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +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 dev.shiggy.manager.R
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
import kotlin.properties.Delegates
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ 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 dev.shiggy.manager.R
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ 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 dev.shiggy.manager.R
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ object ManifestPatcher {
|
|||
"name",
|
||||
android.R.attr.name,
|
||||
TYPE_STRING,
|
||||
"isWintry" /* originally "isAliucord" */
|
||||
"isShiggy" /* originally "isAliucord" */
|
||||
)
|
||||
attr(ANDROID_NAMESPACE, "value", android.R.attr.value, TYPE_INT_BOOLEAN, 1)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ package com.aliucord.manager.patcher.util
|
|||
|
||||
import com.aliucord.manager.manager.PathManager
|
||||
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.x509.SubjectPublicKeyInfo
|
||||
import org.bouncycastle.cert.X509v3CertificateBuilder
|
||||
|
|
@ -32,7 +32,7 @@ object Signer : KoinComponent {
|
|||
|
||||
// Create new keystore if it doesn't exist
|
||||
if (!paths.keystoreFile.exists()) {
|
||||
paths.wintryDir.mkdirs()
|
||||
paths.shiggyDir.mkdirs()
|
||||
newKeystore(paths.keystoreFile)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import androidx.compose.ui.res.painterResource
|
|||
import androidx.compose.ui.res.stringResource
|
||||
import cafe.adriel.voyager.navigator.LocalNavigator
|
||||
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.
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ import androidx.compose.ui.unit.dp
|
|||
import coil3.compose.SubcomposeAsyncImage
|
||||
import com.aliucord.manager.network.models.Contributor
|
||||
import com.valentinilk.shimmer.shimmer
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun ContributorCommitsItem(
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ import androidx.core.graphics.applyCanvas
|
|||
import androidx.core.graphics.createBitmap
|
||||
import androidx.core.graphics.drawable.toDrawable
|
||||
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
|
||||
|
||||
|
|
|
|||
|
|
@ -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 dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun LoadFailure(modifier: Modifier = Modifier) {
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ 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 dev.wintry.manager.BuildConfig
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.BuildConfig
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun ProjectHeader(
|
||||
|
|
@ -28,7 +28,7 @@ fun ProjectHeader(
|
|||
modifier = modifier,
|
||||
) {
|
||||
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,
|
||||
modifier = Modifier
|
||||
.padding(bottom = 6.dp)
|
||||
|
|
@ -36,7 +36,7 @@ fun ProjectHeader(
|
|||
)
|
||||
|
||||
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)
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import androidx.compose.ui.res.painterResource
|
|||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.aliucord.manager.ui.util.mirrorVertically
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun ResetToDefaultButton(
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import androidx.compose.ui.text.style.TextAlign
|
|||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.DialogProperties
|
||||
import com.aliucord.manager.network.utils.SemVer
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun CustomComponentVersionPicker(
|
||||
|
|
|
|||
|
|
@ -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 dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun InstallerAbortDialog(
|
||||
|
|
|
|||
|
|
@ -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 dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun NetworkWarningDialog(
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import androidx.compose.ui.text.style.TextAlign
|
|||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.DialogProperties
|
||||
import com.aliucord.manager.ui.theme.customColors
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun PlayProtectDialog(
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ import androidx.compose.ui.unit.dp
|
|||
import androidx.compose.ui.window.DialogProperties
|
||||
import androidx.core.net.toUri
|
||||
import com.google.accompanist.permissions.*
|
||||
import dev.wintry.manager.BuildConfig
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.BuildConfig
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
@OptIn(ExperimentalPermissionsApi::class)
|
||||
|
|
|
|||
|
|
@ -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 dev.wintry.manager.BuildConfig
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.BuildConfig
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun UnknownSourcesPermissionDialog() {
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import androidx.compose.ui.tooling.preview.*
|
|||
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
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
|
|
|
|||
|
|
@ -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.patchopts.PatchOptions.IconReplacement
|
||||
import com.aliucord.manager.ui.theme.ManagerTheme
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
import dev.zt64.compose.pipette.HsvColor
|
||||
import java.io.ByteArrayOutputStream
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -23,14 +23,13 @@ import cafe.adriel.voyager.koin.koinScreenModel
|
|||
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 dev.shiggy.manager.R
|
||||
import kotlinx.parcelize.IgnoredOnParcel
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
@Parcelize
|
||||
class AboutScreen : Screen, Parcelable {
|
||||
@IgnoredOnParcel
|
||||
override val key = "About"
|
||||
@IgnoredOnParcel override val key = "About"
|
||||
|
||||
@Composable
|
||||
override fun Content() {
|
||||
|
|
@ -43,99 +42,94 @@ class AboutScreen : Screen, Parcelable {
|
|||
@Composable
|
||||
fun AboutScreenContent(state: State<AboutScreenState>) {
|
||||
Scaffold(
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
title = { Text(stringResource(R.string.navigation_about_manager)) },
|
||||
navigationIcon = { BackButton() },
|
||||
)
|
||||
}
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
title = { Text(stringResource(R.string.navigation_about_manager)) },
|
||||
navigationIcon = { BackButton() },
|
||||
)
|
||||
}
|
||||
) { paddingValues ->
|
||||
LazyColumn(
|
||||
verticalArrangement = Arrangement.spacedBy(2.dp),
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
contentPadding = paddingValues
|
||||
.exclude(PaddingValuesSides.Horizontal + PaddingValuesSides.Top)
|
||||
.add(PaddingValues(vertical = 16.dp)),
|
||||
modifier = Modifier
|
||||
.padding(paddingValues.exclude(PaddingValuesSides.Bottom))
|
||||
.padding(horizontal = 14.dp),
|
||||
verticalArrangement = Arrangement.spacedBy(2.dp),
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
contentPadding =
|
||||
paddingValues
|
||||
.exclude(PaddingValuesSides.Horizontal + PaddingValuesSides.Top)
|
||||
.add(PaddingValues(vertical = 16.dp)),
|
||||
modifier =
|
||||
Modifier.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)
|
||||
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)
|
||||
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,
|
||||
text =
|
||||
stringResource(
|
||||
R.string.about_manager_credit_disclaimer_notice
|
||||
),
|
||||
style = MaterialTheme.typography.labelMedium,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
item(key = "PROJECT_HEADER") {
|
||||
ProjectHeader(aliucord = true)
|
||||
}
|
||||
item(key = "PROJECT_HEADER") { ProjectHeader(aliucord = true) }
|
||||
|
||||
item(key = "HEADER_DIVIDER") {
|
||||
TextDivider(
|
||||
text = stringResource(R.string.contributors_lead),
|
||||
modifier = Modifier.padding(top = 18.dp, bottom = 20.dp),
|
||||
text = stringResource(R.string.contributors_lead),
|
||||
modifier = Modifier.padding(top = 18.dp, bottom = 20.dp),
|
||||
)
|
||||
}
|
||||
|
||||
item(key = "MAIN_CONTRIBUTORS") {
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.SpaceEvenly,
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
horizontalArrangement = Arrangement.SpaceEvenly,
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
) {
|
||||
LeadContributor("Vendicated", "the ven")
|
||||
LeadContributor("Juby210", "Fox")
|
||||
LeadContributor("rushii", "explod", "rushiiMachine")
|
||||
LeadContributor("C0C0B01", "Creator of Kettu")
|
||||
LeadContributor("kmmiio99o", "Creator of ShiggyCord")
|
||||
LeadContributor("pylixonly", "Creator of Bunny")
|
||||
}
|
||||
}
|
||||
|
||||
item(key = "CONTRIBUTORS_DIVIDER") {
|
||||
TextDivider(
|
||||
text = stringResource(R.string.contributors),
|
||||
modifier = Modifier.padding(top = 16.dp, bottom = 6.dp)
|
||||
text = stringResource(R.string.contributors),
|
||||
modifier = Modifier.padding(top = 16.dp, bottom = 6.dp)
|
||||
)
|
||||
}
|
||||
|
||||
when (val state = state.value) {
|
||||
AboutScreenState.Loading -> item(key = "CONTRIBUTIONS_LOADING") {
|
||||
Box(
|
||||
contentAlignment = Alignment.Center,
|
||||
content = { CircularProgressIndicator() },
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(vertical = 38.dp),
|
||||
)
|
||||
}
|
||||
|
||||
AboutScreenState.Failure -> item(key = "LOAD_FAILURE") {
|
||||
LoadFailure(
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.padding(vertical = 38.dp)
|
||||
)
|
||||
}
|
||||
|
||||
AboutScreenState.Loading ->
|
||||
item(key = "CONTRIBUTIONS_LOADING") {
|
||||
Box(
|
||||
contentAlignment = Alignment.Center,
|
||||
content = { CircularProgressIndicator() },
|
||||
modifier = Modifier.fillMaxWidth().padding(vertical = 38.dp),
|
||||
)
|
||||
}
|
||||
AboutScreenState.Failure ->
|
||||
item(key = "LOAD_FAILURE") {
|
||||
LoadFailure(modifier = Modifier.fillMaxSize().padding(vertical = 38.dp))
|
||||
}
|
||||
is AboutScreenState.Loaded -> {
|
||||
items(state.contributors, key = { it.username }) { user ->
|
||||
ContributorCommitsItem(user)
|
||||
|
|
|
|||
|
|
@ -24,8 +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 dev.shiggy.manager.BuildConfig
|
||||
import dev.shiggy.manager.R
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.sync.Mutex
|
||||
import kotlinx.coroutines.sync.withLock
|
||||
|
|
@ -37,7 +37,7 @@ class HomeModel(
|
|||
private val application: Application,
|
||||
private val github: AliucordGithubService,
|
||||
private val maven: AliucordMavenService,
|
||||
private val wtGithub: WintryGithubService,
|
||||
private val wtGithub: ShiggyGithubService,
|
||||
private val rnaTracker: RNATrackerService,
|
||||
private val json: Json,
|
||||
) : ScreenModel {
|
||||
|
|
@ -47,7 +47,7 @@ class HomeModel(
|
|||
private val refreshingLock = Mutex()
|
||||
private var remoteDataJson: BuildInfo? = null
|
||||
private var trackerIndexJson: RNATrackerIndex? = null
|
||||
private var latestWintryXposedVersion: SemVer? = null
|
||||
private var latestShiggyXposedVersion: SemVer? = null
|
||||
private var latestAliuhookVersion: SemVer? = null
|
||||
|
||||
init {
|
||||
|
|
@ -109,7 +109,7 @@ class HomeModel(
|
|||
val metadata = try {
|
||||
val applicationInfo = application.packageManager.getApplicationInfo(packageName, 0)
|
||||
val metadataFile = ZipReader(applicationInfo.publicSourceDir)
|
||||
.use { it.openEntry("wintry.json")?.read() }
|
||||
.use { it.openEntry("shiggy.json")?.read() }
|
||||
|
||||
@OptIn(ExperimentalSerializationApi::class)
|
||||
metadataFile?.let { json.decodeFromStream<InstallMetadata>(it.inputStream()) }
|
||||
|
|
@ -190,7 +190,7 @@ class HomeModel(
|
|||
|
||||
private suspend fun fetchRemoteData() {
|
||||
listOf(
|
||||
// // These aren't needed by Wintry
|
||||
// // These aren't needed by Shiggy
|
||||
// screenModelScope.launch(Dispatchers.IO) {
|
||||
// github.getBuildData().fold(
|
||||
// success = { remoteDataJson = it },
|
||||
|
|
@ -211,14 +211,14 @@ class HomeModel(
|
|||
},
|
||||
screenModelScope.launch(Dispatchers.IO) {
|
||||
wtGithub.getLatestXposedRelease().fold(
|
||||
success = { latestWintryXposedVersion = SemVer.parse(it.name) },
|
||||
fail = { Log.w(BuildConfig.TAG, "Failed to fetch latest WintryXposed version", it) },
|
||||
success = { latestShiggyXposedVersion = SemVer.parse(it.name) },
|
||||
fail = { Log.w(BuildConfig.TAG, "Failed to fetch latest ShiggyXposed version", it) },
|
||||
)
|
||||
},
|
||||
|
||||
).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) }
|
||||
}
|
||||
}
|
||||
|
|
@ -230,8 +230,8 @@ class HomeModel(
|
|||
return application.packageManager
|
||||
.getInstalledPackages(PackageManager.GET_META_DATA)
|
||||
.filter {
|
||||
// Wintry doesn't have "legacy installer" whatsoever
|
||||
return@filter it.applicationInfo?.metaData?.containsKey("isWintry") == true
|
||||
// Shiggy doesn't have "legacy installer" whatsoever
|
||||
return@filter it.applicationInfo?.metaData?.containsKey("isShiggy") == true
|
||||
|
||||
// // Packages installed via the legacy Installer do not have the metadata marker
|
||||
// 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
|
||||
* the latest available Discord and WintryXposed release. This is a temporary approach and will remain
|
||||
* in place until Wintry adds support for version pinning.
|
||||
* the latest available Discord and ShiggyXposed release. This is a temporary approach and will remain
|
||||
* in place until Shiggy adds support for version pinning.
|
||||
*/
|
||||
private fun isInstallationUpToDate(pkg: PackageInfo): Boolean? {
|
||||
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.
|
||||
val apkPath = pkg.applicationInfo?.publicSourceDir ?: return false
|
||||
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
|
||||
|
||||
@OptIn(ExperimentalSerializationApi::class)
|
||||
|
|
@ -274,6 +274,6 @@ class HomeModel(
|
|||
VersionPreference.Custom -> return true
|
||||
}
|
||||
|
||||
return latestByPref == versionCode && installMetadata.wintryXposedVersion == latestWintryXposedVersion
|
||||
return latestByPref == versionCode && installMetadata.shiggyXposedVersion == latestShiggyXposedVersion
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.exclude
|
||||
import com.aliucord.manager.util.*
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
import kotlinx.parcelize.IgnoredOnParcel
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import cafe.adriel.voyager.navigator.LocalNavigator
|
|||
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
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun HomeAppBar() {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import androidx.compose.ui.res.stringResource
|
|||
import androidx.compose.ui.unit.dp
|
||||
import com.aliucord.manager.ui.util.thenIf
|
||||
import com.valentinilk.shimmer.*
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
private val shimmerTheme = defaultShimmerTheme.copy(
|
||||
shimmerWidth = 150.dp,
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import androidx.compose.ui.unit.dp
|
|||
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
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun InstalledItemCard(
|
||||
|
|
@ -88,7 +88,7 @@ fun InstalledItemCard(
|
|||
horizontalArrangement = Arrangement.spacedBy(2.dp),
|
||||
modifier = Modifier.clip(MaterialTheme.shapes.large),
|
||||
) {
|
||||
// // Plugins cannot be managed externally yet in Wintry
|
||||
// // Plugins cannot be managed externally yet in Shiggy
|
||||
// SegmentedButton(
|
||||
// icon = painterResource(R.drawable.ic_extension),
|
||||
// text = stringResource(R.string.plugins_title),
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import androidx.compose.runtime.Immutable
|
|||
enum class IconOptionsMode {
|
||||
Original,
|
||||
OldDiscord,
|
||||
Wintry,
|
||||
Shiggy,
|
||||
Aliucord,
|
||||
CustomColor,
|
||||
CustomImage,
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ import cafe.adriel.voyager.core.model.ScreenModel
|
|||
import cafe.adriel.voyager.core.model.screenModelScope
|
||||
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.shiggy.manager.BuildConfig
|
||||
import dev.shiggy.manager.R
|
||||
import dev.zt64.compose.pipette.HsvColor
|
||||
import java.io.IOException
|
||||
|
||||
|
|
@ -74,9 +74,9 @@ class IconOptionsModel(
|
|||
// ---------- Other ---------- //
|
||||
init {
|
||||
when (prefilledOptions) {
|
||||
is IconReplacement.CustomColor if prefilledOptions.color == IconReplacement.WintryColor -> {
|
||||
changeMode(IconOptionsMode.Wintry)
|
||||
initSelectedColor(IconReplacement.WintryColor)
|
||||
is IconReplacement.CustomColor if prefilledOptions.color == IconReplacement.ShiggyColor -> {
|
||||
changeMode(IconOptionsMode.Shiggy)
|
||||
initSelectedColor(IconReplacement.ShiggyColor)
|
||||
}
|
||||
|
||||
is IconReplacement.CustomColor if prefilledOptions.color == IconReplacement.AliucordColor -> {
|
||||
|
|
@ -104,7 +104,7 @@ class IconOptionsModel(
|
|||
return when (mode) {
|
||||
IconOptionsMode.Original -> IconReplacement.Original
|
||||
IconOptionsMode.OldDiscord -> IconReplacement.OldDiscord
|
||||
IconOptionsMode.Wintry -> IconReplacement.CustomColor(IconReplacement.WintryColor)
|
||||
IconOptionsMode.Shiggy -> IconReplacement.CustomColor(IconReplacement.ShiggyColor)
|
||||
IconOptionsMode.Aliucord -> IconReplacement.CustomColor(IconReplacement.AliucordColor)
|
||||
IconOptionsMode.CustomColor -> IconReplacement.CustomColor(color = selectedColor.toColor())
|
||||
IconOptionsMode.CustomImage -> IconReplacement.CustomImage(
|
||||
|
|
|
|||
|
|
@ -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.throttledState
|
||||
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.HsvColor
|
||||
import kotlinx.parcelize.IgnoredOnParcel
|
||||
|
|
@ -120,10 +120,10 @@ fun IconOptionsScreenContent(
|
|||
onClick = remember { { setMode(IconOptionsMode.OldDiscord) } },
|
||||
)
|
||||
RadioSelectorItem(
|
||||
name = stringResource(R.string.wintry),
|
||||
description = stringResource(R.string.iconopts_variant_desc_wintry),
|
||||
selected = mode == IconOptionsMode.Wintry,
|
||||
onClick = remember { { setMode(IconOptionsMode.Wintry) } },
|
||||
name = stringResource(R.string.shiggy),
|
||||
description = stringResource(R.string.iconopts_variant_desc_shiggy),
|
||||
selected = mode == IconOptionsMode.Shiggy,
|
||||
onClick = remember { { setMode(IconOptionsMode.Shiggy) } },
|
||||
)
|
||||
RadioSelectorItem(
|
||||
name = stringResource(R.string.aliucord),
|
||||
|
|
@ -220,7 +220,7 @@ private fun IconPreview(
|
|||
IconOptionsMode.Original -> PatchOptions.IconReplacement.BlurpleColor
|
||||
IconOptionsMode.OldDiscord -> PatchOptions.IconReplacement.OldBlurpleColor
|
||||
IconOptionsMode.Aliucord -> PatchOptions.IconReplacement.AliucordColor
|
||||
IconOptionsMode.Wintry -> PatchOptions.IconReplacement.WintryColor
|
||||
IconOptionsMode.Shiggy -> PatchOptions.IconReplacement.ShiggyColor
|
||||
IconOptionsMode.CustomColor -> selectedColor.toColor()
|
||||
IconOptionsMode.CustomImage -> error("unreachable")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import androidx.compose.ui.res.stringResource
|
|||
import cafe.adriel.voyager.navigator.LocalNavigator
|
||||
import com.aliucord.manager.ui.components.BackButton
|
||||
import com.aliucord.manager.ui.screens.settings.SettingsScreen
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun IconOptionsAppBar() {
|
||||
|
|
|
|||
|
|
@ -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 dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
import java.util.Locale
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
|
|
|
|||
|
|
@ -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.LogTextArea
|
||||
import com.aliucord.manager.util.back
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
import kotlinx.parcelize.IgnoredOnParcel
|
||||
import kotlinx.parcelize.Parcelize
|
||||
import org.koin.core.parameter.parametersOf
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ import cafe.adriel.voyager.core.model.screenModelScope
|
|||
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
|
||||
import dev.shiggy.manager.BuildConfig
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
class LogScreenModel(
|
||||
private val installId: String,
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import androidx.compose.runtime.Composable
|
|||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import com.aliucord.manager.ui.components.BackButton
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun LogAppBar(
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import cafe.adriel.voyager.core.model.ScreenModel
|
|||
import cafe.adriel.voyager.core.model.screenModelScope
|
||||
import com.aliucord.manager.manager.InstallLogManager
|
||||
import com.aliucord.manager.util.*
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
|
|
|
|||
|
|
@ -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.patching.components.StepStateIcon
|
||||
import com.aliucord.manager.ui.screens.patching.components.TimeElapsed
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun LogEntryCard(
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import androidx.compose.ui.res.stringResource
|
|||
import cafe.adriel.voyager.navigator.LocalNavigator
|
||||
import com.aliucord.manager.ui.components.BackButton
|
||||
import com.aliucord.manager.ui.screens.settings.SettingsScreen
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun LogsListAppBar(
|
||||
|
|
|
|||
|
|
@ -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 dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun LogsNone(modifier: Modifier = Modifier) {
|
||||
|
|
|
|||
|
|
@ -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 dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun DeleteLogsDialog(
|
||||
|
|
|
|||
|
|
@ -40,8 +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 dev.shiggy.manager.BuildConfig
|
||||
import dev.shiggy.manager.R
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.coroutines.flow.filter
|
||||
import kotlinx.parcelize.IgnoredOnParcel
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import cafe.adriel.voyager.core.model.StateScreenModel
|
|||
import cafe.adriel.voyager.core.model.screenModelScope
|
||||
import com.aliucord.manager.manager.*
|
||||
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.base.*
|
||||
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.util.toUnsafeImmutable
|
||||
import com.aliucord.manager.util.*
|
||||
import dev.wintry.manager.BuildConfig
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.BuildConfig
|
||||
import dev.shiggy.manager.R
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.ImmutableMap
|
||||
import kotlinx.coroutines.*
|
||||
|
|
@ -125,7 +125,7 @@ class PatchingScreenModel(
|
|||
}
|
||||
|
||||
private suspend fun startPatchRunner() {
|
||||
val runner = WintryPatchRunner(options)
|
||||
val runner = ShiggyPatchRunner(options)
|
||||
.also { stepRunner = it }
|
||||
|
||||
val newSteps = runner.steps.groupBy { it.group }
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import androidx.compose.ui.text.style.TextAlign
|
|||
import androidx.compose.ui.unit.dp
|
||||
import com.aliucord.manager.ui.screens.patching.PatchingScreenState
|
||||
import com.aliucord.manager.ui.screens.patching.VERTICAL_PADDING
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun FunFact(
|
||||
|
|
|
|||
|
|
@ -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 dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun PatchingAppBar(
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import androidx.compose.ui.res.stringResource
|
|||
import androidx.compose.ui.unit.dp
|
||||
import com.aliucord.manager.patcher.steps.base.Step
|
||||
import com.aliucord.manager.patcher.steps.base.StepState
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
|
||||
@Composable
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import androidx.compose.ui.semantics.contentDescription
|
|||
import androidx.compose.ui.semantics.semantics
|
||||
import androidx.compose.ui.unit.Dp
|
||||
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.roundToInt
|
||||
|
||||
|
|
|
|||
|
|
@ -109,9 +109,9 @@ data class PatchOptions(
|
|||
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.
|
||||
|
|
@ -127,10 +127,10 @@ data class PatchOptions(
|
|||
|
||||
companion object {
|
||||
val Default = PatchOptions(
|
||||
appName = "Wintry",
|
||||
packageName = "dev.wintry.app",
|
||||
appName = "Shiggy",
|
||||
packageName = "dev.shiggy.app",
|
||||
debuggable = false,
|
||||
iconReplacement = IconReplacement.CustomColor(IconReplacement.WintryColor),
|
||||
iconReplacement = IconReplacement.CustomColor(IconReplacement.ShiggyColor),
|
||||
versionPreference = VersionPreference.Stable,
|
||||
customVersionCode = "",
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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.util.*
|
||||
import com.aliucord.manager.util.*
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.parcelize.IgnoredOnParcel
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
|
@ -85,7 +85,7 @@ class PatchOptionsScreen(
|
|||
selectedColor = when (iconModel.mode) {
|
||||
IconOptionsMode.Original -> PatchOptions.IconReplacement.BlurpleColor
|
||||
IconOptionsMode.OldDiscord -> PatchOptions.IconReplacement.OldBlurpleColor
|
||||
IconOptionsMode.Wintry -> PatchOptions.IconReplacement.WintryColor
|
||||
IconOptionsMode.Shiggy -> PatchOptions.IconReplacement.ShiggyColor
|
||||
IconOptionsMode.Aliucord -> PatchOptions.IconReplacement.AliucordColor
|
||||
IconOptionsMode.CustomColor -> iconModel.selectedColor.toColor()
|
||||
IconOptionsMode.CustomImage -> null
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import androidx.compose.ui.res.painterResource
|
|||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.aliucord.manager.ui.screens.patchopts.PackageNameState
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun PackageNameStateLabel(
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import androidx.compose.ui.res.stringResource
|
|||
import cafe.adriel.voyager.navigator.LocalNavigator
|
||||
import com.aliucord.manager.ui.components.BackButton
|
||||
import com.aliucord.manager.ui.screens.settings.SettingsScreen
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
|
||||
@Composable
|
||||
fun PatchOptionsAppBar(
|
||||
|
|
|
|||
|
|
@ -12,8 +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 dev.shiggy.manager.BuildConfig
|
||||
import dev.shiggy.manager.R
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.flow.*
|
||||
|
|
|
|||
|
|
@ -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.model.PluginItem
|
||||
import com.aliucord.manager.ui.util.paddings.*
|
||||
import dev.wintry.manager.R
|
||||
import dev.shiggy.manager.R
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.parcelize.IgnoredOnParcel
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue