From 5cf9b12db971f3a325b911dd3f721d3cab72f73d Mon Sep 17 00:00:00 2001 From: Joel Menchavez Date: Sun, 5 Apr 2026 21:40:01 -0700 Subject: [PATCH] Show error on absence of templates.json in cgt and suppress warnings on absence of language and minsdk --- .../androidide/templates/impl/zip/ZipRecipeExecutor.kt | 7 +++---- .../androidide/templates/impl/zip/ZipTemplateReader.kt | 5 ++++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/zip/ZipRecipeExecutor.kt b/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/zip/ZipRecipeExecutor.kt index 345763b956..a5dd026636 100644 --- a/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/zip/ZipRecipeExecutor.kt +++ b/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/zip/ZipRecipeExecutor.kt @@ -75,8 +75,9 @@ class ZipRecipeExecutor( .build() val className = data.name.replace(CLASS_NAME_PATTERN, "") - val (baseIdentifiers, warnings) = metaJson.pebbleParams(data, defModule, params) - val identifiers = baseIdentifiers + (KEY_CLASS_NAME to className) + val (baseIdentifiers, warnings) = metaJson.pebbleParams(data, defModule, params) + val identifiers = baseIdentifiers + (KEY_CLASS_NAME to className) + if (warnings.isNotEmpty()) { warn("Identifier warnings: ${warnings.joinToString(System.lineSeparator())}") } @@ -227,10 +228,8 @@ class ZipRecipeExecutor( if (saveLocation.usedDefault) warnings += "Missing 'saveLocation', defaulted to $KEY_SAVE_LOCATION" val language = resolveString(parameters?.optional?.language?.identifier, KEY_LANGUAGE) - if (language.usedDefault) warnings += "Missing 'language', defaulted to $KEY_LANGUAGE" val minSdk = resolveString(parameters?.optional?.minsdk?.identifier, KEY_MIN_SDK) - if (minSdk.usedDefault) warnings += "Missing 'minsdk', defaulted to $KEY_MIN_SDK" val agpVersion = resolveString(system?.agpVersion?.identifier, KEY_AGP_VERSION) if (agpVersion.usedDefault) warnings += "Missing 'agpVersion', defaulted to $KEY_AGP_VERSION" diff --git a/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/zip/ZipTemplateReader.kt b/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/zip/ZipTemplateReader.kt index a193e62ff6..4b075badc2 100644 --- a/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/zip/ZipTemplateReader.kt +++ b/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/zip/ZipTemplateReader.kt @@ -36,7 +36,10 @@ object ZipTemplateReader { try { ZipFile(zipFile).use { zip -> - val indexEntry = zip.getEntry(ARCHIVE_JSON) ?: return emptyList() + val indexEntry = requireNotNull(zip.getEntry(ARCHIVE_JSON)) { + "${zip.name} does not contain $ARCHIVE_JSON" + } + val indexJson = zip.getInputStream(indexEntry).bufferedReader().use { gson.fromJson(it, TemplatesIndex::class.java) }