File tree Expand file tree Collapse file tree
app/src/main/java/com/itsaky/androidide/fragments
templates-impl/src/main/java/com/itsaky/androidide/templates/impl/zip Expand file tree Collapse file tree Original file line number Diff line number Diff 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
Original file line number Diff line number Diff 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 }
You can’t perform that action at this time.
0 commit comments