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"); } }