From c4977b56678a01b39df70bdae37f605e35bea0c6 Mon Sep 17 00:00:00 2001 From: Johan Reitan Date: Thu, 1 Oct 2020 14:05:08 +0200 Subject: [PATCH 1/2] use string instead of index for serializing constraint enum --- .../dev/thinkng/flt_worker/internal/WorkRequests.java | 2 +- lib/src/constraints.dart | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/dev/thinkng/flt_worker/internal/WorkRequests.java b/android/src/main/java/dev/thinkng/flt_worker/internal/WorkRequests.java index 5b50b73..3b7d1db 100644 --- a/android/src/main/java/dev/thinkng/flt_worker/internal/WorkRequests.java +++ b/android/src/main/java/dev/thinkng/flt_worker/internal/WorkRequests.java @@ -146,7 +146,7 @@ private static Constraints parseConstraints(@Nullable Object json) { if (constraintsJson.get("networkType") != null) { builder.setRequiredNetworkType( - NetworkType.values()[(Integer) constraintsJson.get("networkType")]); + NetworkType.valueOf((String) constraintsJson.get("networkType"))); } if (constraintsJson.get("batteryNotLow") != null) { builder.setRequiresBatteryNotLow((Boolean) constraintsJson.get("batteryNotLow")); diff --git a/lib/src/constraints.dart b/lib/src/constraints.dart index 560c548..53c93ff 100644 --- a/lib/src/constraints.dart +++ b/lib/src/constraints.dart @@ -50,7 +50,7 @@ class WorkConstraints { /// Serializes this constraints into a json object. Map toJson() => { - 'networkType': networkType?.index, + 'networkType': networkType == null ? null : _enumToSnakeCaseString(networkType), 'batteryNotLow': batteryNotLow, 'charging': charging, 'deviceIdle': deviceIdle, @@ -75,3 +75,10 @@ enum NetworkType { /// An unmetered network connection is required for this work. unmetered, } + +String _enumToSnakeCaseString(NetworkType networkType) => networkType + .toString() + .split('.') + .last + .replaceAllMapped(RegExp(r'(?<=[a-z])[A-Z]'), (m) => ('_' + m.group(0))) + .toUpperCase(); From c6606d79ed29abd6f7e8e0bfe6f7b523927cc9d1 Mon Sep 17 00:00:00 2001 From: Johan Reitan Date: Fri, 2 Oct 2020 11:18:08 +0200 Subject: [PATCH 2/2] fix test --- .../java/dev/thinkng/flt_worker/internal/WorkRequestsTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/test/java/dev/thinkng/flt_worker/internal/WorkRequestsTest.java b/android/src/test/java/dev/thinkng/flt_worker/internal/WorkRequestsTest.java index fe9776c..c67022e 100644 --- a/android/src/test/java/dev/thinkng/flt_worker/internal/WorkRequestsTest.java +++ b/android/src/test/java/dev/thinkng/flt_worker/internal/WorkRequestsTest.java @@ -93,7 +93,7 @@ public void parseInvalidBackoffCriteria() { @Test public void parseConstraints() { Map constraintsJson = new HashMap<>(); - constraintsJson.put("networkType", NetworkType.NOT_ROAMING.ordinal()); + constraintsJson.put("networkType", NetworkType.NOT_ROAMING.toString()); constraintsJson.put("batteryNotLow", true); constraintsJson.put("charging", null); constraintsJson.put("deviceIdle", true);