Skip to content

Commit fff1694

Browse files
committed
fixes for potential issues
1 parent a44db17 commit fff1694

2 files changed

Lines changed: 12 additions & 5 deletions

File tree

app/src/main/java/com/itsaky/androidide/fragments/TemplateDetailsFragment.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,9 @@ class TemplateDetailsFragment :
105105
}
106106

107107
viewModel.creatingProject.value = true
108+
val appContext = requireContext().applicationContext
108109
executeAsyncProvideError({
109-
template.recipe.execute(TemplateRecipeExecutor(requireContext()))
110+
template.recipe.execute(TemplateRecipeExecutor(appContext))
110111
}) { result, err ->
111112

112113
viewModel.creatingProject.value = false

templates-impl/src/main/java/com/itsaky/androidide/templates/impl/zip/ZipRecipeExecutor.kt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,14 @@ class ZipRecipeExecutor(
8080

8181
val extensionsEntry = zip.getEntry(META_EXTENSION_JAR)
8282
if (extensionsEntry != null) {
83-
val extensions = loadExtensionFromArchive(extensionsEntry, executor.context!!)
84-
for (ext in extensions) {
85-
builder.extension(ext)
83+
val context = executor.context
84+
if (context == null) {
85+
warn("Skipping $META_EXTENSION_JAR because TemplateRecipeExecutor.context is unavailable")
86+
} else {
87+
val extensions = loadExtensionFromArchive(zip, extensionsEntry, context)
88+
for (ext in extensions) {
89+
builder.extension(ext)
90+
}
8691
}
8792
}
8893

@@ -350,14 +355,15 @@ class ZipRecipeExecutor(
350355

351356
@SuppressLint("SetWorldReadable")
352357
private fun loadExtensionFromArchive(
358+
zip: ZipFile,
353359
entry: ZipEntry,
354360
context: Context,
355361
): List<Extension> {
356362

357363
val tempJar = File.createTempFile("ext_", ".jar", context.codeCacheDir)
358364

359365
try {
360-
zipProvider().getInputStream(entry).use { input ->
366+
zip.getInputStream(entry).use { input ->
361367
tempJar.outputStream().use { output ->
362368
input.copyTo(output)
363369
}

0 commit comments

Comments
 (0)