diff --git a/mobile/android/app/src/test/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBuilderTest.java b/mobile/android/app/src/test/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBuilderTest.java index 04fde632d2d8..473a22edc69f 100644 --- a/mobile/android/app/src/test/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBuilderTest.java +++ b/mobile/android/app/src/test/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBuilderTest.java @@ -16,8 +16,6 @@ import org.mozilla.gecko.background.testhelpers.TestRunner; import org.mozilla.gecko.sync.ExtendedJSONObject; import org.mozilla.gecko.sync.synchronizer.StoreBatchTracker; import org.mozilla.gecko.sync.telemetry.TelemetryStageCollector; -import org.mozilla.gecko.sync.validation.BookmarkValidationResults; -import org.mozilla.gecko.sync.validation.ValidationResults; import org.mozilla.gecko.telemetry.TelemetryLocalPing; import java.util.ArrayList; @@ -39,27 +37,19 @@ public class TelemetrySyncPingBuilderTest { @Test public void testGeneralShape() throws Exception { TelemetryLocalPing localPing = builder - .setDeviceID("device-id") - .setUID("uid") .setTook(123L) .setRestarted(false) .build(); ExtendedJSONObject payload = localPing.getPayload(); - assertEquals("uid", payload.getString("uid")); assertEquals(Long.valueOf(123L), payload.getLong("took")); - assertEquals("device-id", payload.getString("deviceID")); assertFalse(payload.containsKey("restarted")); localPing = builder - .setDeviceID("device-id") - .setUID("uid") .setTook(123L) .setRestarted(true) .build(); payload = localPing.getPayload(); - assertEquals("uid", payload.getString("uid")); assertEquals(Long.valueOf(123L), payload.getLong("took")); - assertEquals("device-id", payload.getString("deviceID")); assertTrue(payload.getLong("when") != null); assertEquals(true, payload.getBoolean("restarted")); diff --git a/mobile/android/app/src/test/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBundleBuilderTest.java b/mobile/android/app/src/test/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBundleBuilderTest.java index a35df4e3f72a..b313d54ee830 100644 --- a/mobile/android/app/src/test/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBundleBuilderTest.java +++ b/mobile/android/app/src/test/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBundleBuilderTest.java @@ -105,6 +105,8 @@ public class TelemetrySyncPingBundleBuilderTest { public void testGeneralShape() throws Exception { builder.setSyncStore(syncPings); builder.setSyncEventStore(eventPings); + builder.setDeviceID("device-id-1"); + builder.setUID("uid-1"); TelemetryOutgoingPing outgoingPing = builder.build(); @@ -128,13 +130,16 @@ public class TelemetrySyncPingBundleBuilderTest { // Test general shape of payload. Expecting {"syncs":[],"why":"schedule", "version": 1, - // "os": {"name": "Android", "version": "", "locale": ""}}. + // "os": {"name": "Android", "version": "", "locale": ""}, + // "deviceID": , "uid": }. // NB that even though we set an empty sync event store, it's not in the json string. // That's because sync events are not yet instrumented. ExtendedJSONObject payload = outgoingPing.getPayload().getObject("payload"); - assertEquals(4, payload.keySet().size()); + assertEquals(6, payload.keySet().size()); assertEquals("schedule", payload.getString("why")); assertEquals(Integer.valueOf(1), payload.getIntegerSafely("version")); + assertEquals(payload.getString("uid"), "uid-1"); + assertEquals(payload.getString("deviceID"), "device-id-1"); assertEquals(0, payload.getArray("syncs").size()); // Test os key. ExtendedJSONObject os = payload.getObject("os"); @@ -151,10 +156,8 @@ public class TelemetrySyncPingBundleBuilderTest { public void testBundlingOfMultiplePings() throws Exception { // Try just one ping first. syncPings.storePing(new TelemetrySyncPingBuilder() - .setDeviceID("test-device-id") .setRestarted(true) .setTook(123L) - .setUID("test-uid") .build() ); builder.setSyncStore(syncPings); @@ -166,14 +169,12 @@ public class TelemetrySyncPingBundleBuilderTest { assertEquals("schedule", payload.getString("why")); JSONArray syncs = payload.getArray("syncs"); assertEquals(1, syncs.size()); - assertSync((ExtendedJSONObject) syncs.get(0), "test-uid", 123L, "test-device-id", true); + assertSync((ExtendedJSONObject) syncs.get(0), 123L, true); // Add another ping. syncPings.storePing(new TelemetrySyncPingBuilder() - .setDeviceID("test-device-id") .setRestarted(false) .setTook(321L) - .setUID("test-uid") .build() ); builder.setSyncStore(syncPings); @@ -184,14 +185,12 @@ public class TelemetrySyncPingBundleBuilderTest { .getObject("payload") .getArray("syncs"); assertEquals(2, syncs.size()); - assertSync((ExtendedJSONObject) syncs.get(0), "test-uid", 123L, "test-device-id", true); - assertSync((ExtendedJSONObject) syncs.get(1), "test-uid", 321L, "test-device-id", false); + assertSync((ExtendedJSONObject) syncs.get(0), 123L, true); + assertSync((ExtendedJSONObject) syncs.get(1), 321L, false); } - private void assertSync(ExtendedJSONObject sync, String uid, long took, String deviceID, boolean restarted) throws JSONException { - assertEquals(uid, sync.getString("uid")); + private void assertSync(ExtendedJSONObject sync, long took, boolean restarted) throws JSONException { assertEquals(Long.valueOf(took), sync.getLong("took")); - assertEquals(deviceID, sync.getString("deviceID")); // Test that 'when' timestamp looks generally sane. final long now = System.currentTimeMillis(); diff --git a/mobile/android/base/java/org/mozilla/gecko/telemetry/TelemetryBackgroundReceiver.java b/mobile/android/base/java/org/mozilla/gecko/telemetry/TelemetryBackgroundReceiver.java index 6e9ecd3fd256..f9d78cf413c1 100644 --- a/mobile/android/base/java/org/mozilla/gecko/telemetry/TelemetryBackgroundReceiver.java +++ b/mobile/android/base/java/org/mozilla/gecko/telemetry/TelemetryBackgroundReceiver.java @@ -151,14 +151,6 @@ public class TelemetryBackgroundReceiver extends BroadcastReceiver { telemetryStore = syncTelemetryStore; TelemetrySyncPingBuilder localPingBuilder = new TelemetrySyncPingBuilder(); - if (uid != null) { - localPingBuilder.setUID(uid); - } - - if (deviceID != null) { - localPingBuilder.setDeviceID(deviceID); - } - if (devices != null) { localPingBuilder.setDevices(devices); } @@ -233,6 +225,8 @@ public class TelemetryBackgroundReceiver extends BroadcastReceiver { // Bundle up all that we have in our telemetry stores. final TelemetryOutgoingPing syncPing = new TelemetrySyncPingBundleBuilder() + .setUID(uid) + .setDeviceID(deviceID) .setSyncStore(syncTelemetryStore) .setSyncEventStore(syncEventTelemetryStore) .setReason(reasonToUpload) diff --git a/mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBuilder.java b/mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBuilder.java index aced4fecc57a..c669b858eedb 100644 --- a/mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBuilder.java +++ b/mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBuilder.java @@ -89,16 +89,6 @@ public class TelemetrySyncPingBuilder extends TelemetryLocalPingBuilder { return this; } - public TelemetrySyncPingBuilder setUID(@NonNull String uid) { - payload.put("uid", uid); - return this; - } - - public TelemetrySyncPingBuilder setDeviceID(@NonNull String deviceID) { - payload.put("deviceID", deviceID); - return this; - } - @Nullable private static JSONArray buildOutgoing(List batches) { if (batches == null || batches.size() == 0) { diff --git a/mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBundleBuilder.java b/mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBundleBuilder.java index 294823390e45..e886b2b9e9b5 100644 --- a/mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBundleBuilder.java +++ b/mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBundleBuilder.java @@ -69,6 +69,16 @@ public class TelemetrySyncPingBundleBuilder extends TelemetryPingBuilder { return this; } + public TelemetrySyncPingBundleBuilder setUID(@NonNull String uid) { + pingData.put("uid", uid); + return this; + } + + public TelemetrySyncPingBundleBuilder setDeviceID(@NonNull String deviceID) { + pingData.put("deviceID", deviceID); + return this; + } + @Override public TelemetryOutgoingPing build() { final DateFormat pingCreationDateFormat = new SimpleDateFormat(