Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.arduino.ide.mobile.project

import android.content.Context
import android.util.Log
import java.io.File

/**
Expand Down Expand Up @@ -83,10 +84,15 @@ class SketchProject(
""".trimIndent()
)

val sketchFiles = files.map { (name, body) ->
val sketchFiles = files.mapNotNull { (name, body) ->
val file = File(demoRoot, name)
file.writeText(body)
SketchFile(name = name, path = file.absolutePath, content = body)
runCatching {
file.writeText(body)
SketchFile(name = name, path = file.absolutePath, content = body)
}.getOrElse { error ->
Log.e("SketchProject", "Failed to seed demo sketch file $name", error)
null
}
}

return SketchProject("Blink", demoRoot, sketchFiles)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.arduino.ide.mobile.snippets

import android.content.Context
import android.util.Log
import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.stringPreferencesKey
Expand Down Expand Up @@ -62,15 +63,20 @@ class SnippetRepository(
.map { prefs -> parseUserSnippets(prefs) }

private suspend fun loadBundledSnippets(): List<Snippet> = withContext(dispatcher) {
val assetManager = context.assets
val directories = assetManager.list("snippets") ?: emptyArray()
val snippets = mutableListOf<Snippet>()
directories.forEach { assetFile ->
val stream = assetManager.open("snippets/$assetFile")
val content = stream.bufferedReader().use { it.readText() }
snippets += parseSnippetArray(JSONArray(content), isUserDefined = false)
runCatching {
val assetManager = context.assets
val directories = assetManager.list("snippets") ?: emptyArray()
val snippets = mutableListOf<Snippet>()
directories.forEach { assetFile ->
val stream = assetManager.open("snippets/$assetFile")
val content = stream.bufferedReader().use { it.readText() }
snippets += parseSnippetArray(JSONArray(content), isUserDefined = false)
}
snippets
}.getOrElse { error ->
Log.e("SnippetRepository", "Failed to load bundled snippets", error)
emptyList()
}
snippets
}

private fun parseUserSnippets(prefs: Preferences): List<Snippet> {
Expand Down
Loading