diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pinetime/InfiniTimeDFUPackage.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pinetime/InfiniTimeDFUPackage.java
index 33d0936d4..631fba9c0 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pinetime/InfiniTimeDFUPackage.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pinetime/InfiniTimeDFUPackage.java
@@ -16,24 +16,30 @@
along with this program. If not, see . */
package nodomain.freeyourgadget.gadgetbridge.devices.pinetime;
+import androidx.annotation.Keep;
+
import java.math.BigInteger;
import java.util.List;
+@Keep
public class InfiniTimeDFUPackage {
InfiniTimeDFUPackageManifest manifest;
}
+@Keep
class InfiniTimeDFUPackageManifest {
InfiniTimeDFUPackageApplication application;
Float dfu_version;
}
+@Keep
class InfiniTimeDFUPackageApplication {
String bin_file;
String dat_file;
InfiniTimeDFUPackagePacketData init_packet_data;
}
+@Keep
class InfiniTimeDFUPackagePacketData {
BigInteger application_version;
BigInteger device_revision;
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pinetime/PineTimeInstallHandler.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pinetime/PineTimeInstallHandler.java
index 7ebca91dd..88a0b2fc9 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pinetime/PineTimeInstallHandler.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pinetime/PineTimeInstallHandler.java
@@ -16,6 +16,8 @@
along with this program. If not, see . */
package nodomain.freeyourgadget.gadgetbridge.devices.pinetime;
+import static java.nio.charset.StandardCharsets.UTF_8;
+
import android.content.Context;
import android.net.Uri;
import android.os.Build;
@@ -38,8 +40,6 @@ import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
import nodomain.freeyourgadget.gadgetbridge.model.GenericItem;
import nodomain.freeyourgadget.gadgetbridge.util.UriHelper;
-import static java.nio.charset.StandardCharsets.UTF_8;
-
public class PineTimeInstallHandler implements InstallHandler {
private static final Logger LOG = LoggerFactory.getLogger(PineTimeInstallHandler.class);
@@ -92,9 +92,15 @@ public class PineTimeInstallHandler implements InstallHandler {
return;
}
- if (metadata != null) {
+ if (metadata != null &&
+ metadata.manifest != null &&
+ metadata.manifest.application != null &&
+ metadata.manifest.application.bin_file != null) {
valid = true;
version = metadata.manifest.application.bin_file;
+ } else {
+ valid = false;
+ LOG.error("Somehow metadata was found, but some data was missing");
}
}