diff --git a/.project b/.project
new file mode 100644
index 000000000..6079e350e
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+
+
+ Mesh Util
+ Project MeshUtil created by Buildship.
+
+
+
+
+ org.eclipse.buildship.core.gradleprojectbuilder
+
+
+
+
+
+ org.eclipse.buildship.core.gradleprojectnature
+
+
diff --git a/.settings/org.eclipse.buildship.core.prefs b/.settings/org.eclipse.buildship.core.prefs
new file mode 100644
index 000000000..f8483ac09
--- /dev/null
+++ b/.settings/org.eclipse.buildship.core.prefs
@@ -0,0 +1,13 @@
+arguments=
+auto.sync=false
+build.scans.enabled=false
+connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
+connection.project.dir=
+eclipse.preferences.version=1
+gradle.user.home=
+java.home=/usr/lib/jvm/java-8-oracle
+jvm.arguments=
+offline.mode=false
+override.workspace.settings=true
+show.console.view=true
+show.executions.view=true
diff --git a/TODO.md b/TODO.md
index b952f2245..d9d521a55 100644
--- a/TODO.md
+++ b/TODO.md
@@ -1,10 +1,11 @@
# Remaining tasks before declaring 1.0
+- Android frontend should refetch the android messages from backend service on Resume
- disable software update button after update finishes
- first message sent is still doubled for some people
-- Android frontend should refetch the android messages from backend service on Resume
- let users set arbitrary params in android
* add a low level settings screen (let user change any of the RadioConfig parameters)
+- optionally include firmware files in debug builds - currently they are release only. per https://developer.android.com/studio/build/build-variants
Things for the betaish period.
diff --git a/app/.classpath b/app/.classpath
new file mode 100644
index 000000000..eb19361b5
--- /dev/null
+++ b/app/.classpath
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/app/.project b/app/.project
new file mode 100644
index 000000000..ac485d7c3
--- /dev/null
+++ b/app/.project
@@ -0,0 +1,23 @@
+
+
+ app
+ Project app created by Buildship.
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.buildship.core.gradleprojectbuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.buildship.core.gradleprojectnature
+
+
diff --git a/app/.settings/org.eclipse.buildship.core.prefs b/app/.settings/org.eclipse.buildship.core.prefs
new file mode 100644
index 000000000..b1886adb4
--- /dev/null
+++ b/app/.settings/org.eclipse.buildship.core.prefs
@@ -0,0 +1,2 @@
+connection.project.dir=..
+eclipse.preferences.version=1
diff --git a/app/src/main/assets/firmware b/app/src/debug/assets/firmware
similarity index 100%
rename from app/src/main/assets/firmware
rename to app/src/debug/assets/firmware
diff --git a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt
index 5d9683ed5..21daedcbb 100644
--- a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt
+++ b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt
@@ -1442,7 +1442,7 @@ class MeshService : Service(), Logging {
/***
* Return the filename we will install on the device
*/
- fun setFirmwareUpdateFilename(info: MeshProtos.MyNodeInfo) {
+ private fun setFirmwareUpdateFilename(info: MeshProtos.MyNodeInfo) {
firmwareUpdateFilename = try {
if (info.region != null && info.firmwareVersion != null && info.hwModel != null)
SoftwareUpdateService.getUpdateFilename(
diff --git a/app/src/main/java/com/geeksville/mesh/service/SoftwareUpdateService.kt b/app/src/main/java/com/geeksville/mesh/service/SoftwareUpdateService.kt
index cf0c12613..38b31b0a6 100644
--- a/app/src/main/java/com/geeksville/mesh/service/SoftwareUpdateService.kt
+++ b/app/src/main/java/com/geeksville/mesh/service/SoftwareUpdateService.kt
@@ -219,7 +219,7 @@ class SoftwareUpdateService : JobIntentService(), Logging {
hwVerIn: String,
swVer: String,
mfg: String
- ): String {
+ ): String? {
val curver = context.getString(R.string.cur_firmware_version)
val regionRegex = Regex(".+-(.+)")
@@ -230,7 +230,12 @@ class SoftwareUpdateService : JobIntentService(), Logging {
val (region) = regionRegex.find(hwVer)?.destructured
?: throw Exception("Malformed hw version")
- return "firmware/firmware-$mfg-$region-$curver.bin"
+ val name = "firmware/firmware-$mfg-$region-$curver.bin"
+ // Check to see if the file exists (some builds might not include update files for size reasons)
+ return if (!context.assets.list(name).isNullOrEmpty())
+ name
+ else
+ null
}
/** Return the filename this device needs to use as an update (or null if no update needed)