fix(Custom branding icon): displays an appropriate error if the path to patch options is invalid

This commit is contained in:
inotia00 2023-12-06 13:52:06 +09:00
parent 9b15d234e3
commit b81392a2d4
2 changed files with 29 additions and 21 deletions

View File

@ -68,19 +68,23 @@ object CustomBrandingIconPatch : ResourcePatch() {
directory, *mipmapIconResourceFileNames directory, *mipmapIconResourceFileNames
) )
}.let { resourceGroups -> }.let { resourceGroups ->
val path = File(appIcon) try {
val resourceDirectory = context["res"] val path = File(appIcon)
val resourceDirectory = context["res"]
resourceGroups.forEach { group -> resourceGroups.forEach { group ->
val fromDirectory = path.resolve(group.resourceDirectoryName) val fromDirectory = path.resolve(group.resourceDirectoryName)
val toDirectory = resourceDirectory.resolve(group.resourceDirectoryName) val toDirectory = resourceDirectory.resolve(group.resourceDirectoryName)
group.resources.forEach { iconFileName -> group.resources.forEach { iconFileName ->
Files.write( Files.write(
toDirectory.resolve(iconFileName).toPath(), toDirectory.resolve(iconFileName).toPath(),
fromDirectory.resolve(iconFileName).readBytes() fromDirectory.resolve(iconFileName).readBytes()
) )
}
} }
} catch (_: Exception) {
throw PatchException("Invalid app icon path: $appIcon")
} }
} }
} else { } else {

View File

@ -113,21 +113,25 @@ object CustomBrandingIconPatch : ResourcePatch() {
directory, *mipmapIconResourceFileNames directory, *mipmapIconResourceFileNames
) )
}.let { resourceGroups -> }.let { resourceGroups ->
val path = File(appIcon) try {
val resourceDirectory = context["res"] val path = File(appIcon)
val resourceDirectory = context["res"]
resourceGroups.forEach { group -> resourceGroups.forEach { group ->
val fromDirectory = path.resolve(group.resourceDirectoryName) val fromDirectory = path.resolve(group.resourceDirectoryName)
val toDirectory = resourceDirectory.resolve(group.resourceDirectoryName) val toDirectory = resourceDirectory.resolve(group.resourceDirectoryName)
group.resources.forEach { iconFileName -> group.resources.forEach { iconFileName ->
Files.write( Files.write(
toDirectory.resolve(iconFileName).toPath(), toDirectory.resolve(iconFileName).toPath(),
fromDirectory.resolve(iconFileName).readBytes() fromDirectory.resolve(iconFileName).readBytes()
) )
}
} }
context.updatePatchStatusIcon("custom")
} catch (_: Exception) {
throw PatchException("Invalid app icon path: $appIcon")
} }
context.updatePatchStatusIcon("custom")
} }
} else { } else {
val resourcePath = "youtube/branding/$appIconValue" val resourcePath = "youtube/branding/$appIconValue"