Bug 1243585 - Create telemtry/core/ pkg and move files accordingly. r=sebastian
MozReview-Commit-ID: 8cqtwzPbvHp
rename from mobile/android/base/java/org/mozilla/gecko/telemetry/pings/TelemetryPing.java
rename to mobile/android/base/java/org/mozilla/gecko/telemetry/TelemetryPing.java
--- a/mobile/android/base/java/org/mozilla/gecko/telemetry/pings/TelemetryPing.java
+++ b/mobile/android/base/java/org/mozilla/gecko/telemetry/TelemetryPing.java
@@ -1,14 +1,14 @@
/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-package org.mozilla.gecko.telemetry.pings;
+package org.mozilla.gecko.telemetry;
import org.mozilla.gecko.sync.ExtendedJSONObject;
/**
* Container for telemetry data and the data necessary to upload it.
*
* If you want to create one of these, consider extending
* {@link TelemetryPingBuilder} or one of its descendants.
rename from mobile/android/base/java/org/mozilla/gecko/telemetry/pings/TelemetryPingBuilder.java
rename to mobile/android/base/java/org/mozilla/gecko/telemetry/TelemetryPingBuilder.java
--- a/mobile/android/base/java/org/mozilla/gecko/telemetry/pings/TelemetryPingBuilder.java
+++ b/mobile/android/base/java/org/mozilla/gecko/telemetry/TelemetryPingBuilder.java
@@ -1,52 +1,52 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
-package org.mozilla.gecko.telemetry.pings;
+package org.mozilla.gecko.telemetry;
import org.mozilla.gecko.AppConstants;
import org.mozilla.gecko.sync.ExtendedJSONObject;
import java.util.Set;
import java.util.UUID;
/**
* A generic Builder for {@link TelemetryPing} instances. Each overriding class is
* expected to create a specific type of ping (e.g. "core").
*
* This base class handles the common ping operations under the hood:
* * Validating mandatory fields
* * Forming the server url
*/
-abstract class TelemetryPingBuilder {
+public abstract class TelemetryPingBuilder {
// In the server url, the initial path directly after the "scheme://host:port/"
private static final String SERVER_INITIAL_PATH = "submit/telemetry";
private final String serverUrl;
protected final ExtendedJSONObject payload;
public TelemetryPingBuilder(final String serverURLSchemeHostPort) {
serverUrl = getTelemetryServerURL(getDocType(), serverURLSchemeHostPort);
payload = new ExtendedJSONObject();
}
/**
* @return the name of the ping (e.g. "core")
*/
- abstract String getDocType();
+ public abstract String getDocType();
/**
* @return the fields that are mandatory for the resultant ping to be uploaded to
* the server. These will be validated before the ping is built.
*/
- abstract String[] getMandatoryFields();
+ public abstract String[] getMandatoryFields();
public TelemetryPing build() {
validatePayload();
return new TelemetryPing(serverUrl, payload);
}
private void validatePayload() {
final Set<String> keySet = payload.keySet();
--- a/mobile/android/base/java/org/mozilla/gecko/telemetry/TelemetryUploadService.java
+++ b/mobile/android/base/java/org/mozilla/gecko/telemetry/TelemetryUploadService.java
@@ -17,18 +17,17 @@ import ch.boye.httpclientandroidlib.clie
import org.mozilla.gecko.GeckoProfile;
import org.mozilla.gecko.GeckoSharedPrefs;
import org.mozilla.gecko.background.BackgroundService;
import org.mozilla.gecko.distribution.DistributionStoreCallback;
import org.mozilla.gecko.preferences.GeckoPreferences;
import org.mozilla.gecko.sync.net.BaseResource;
import org.mozilla.gecko.sync.net.BaseResourceDelegate;
import org.mozilla.gecko.sync.net.Resource;
-import org.mozilla.gecko.telemetry.pings.TelemetryCorePingBuilder;
-import org.mozilla.gecko.telemetry.pings.TelemetryPing;
+import org.mozilla.gecko.telemetry.core.TelemetryCorePingBuilder;
import org.mozilla.gecko.util.StringUtils;
import java.io.IOException;
import java.net.URISyntaxException;
import java.security.GeneralSecurityException;
/**
* The service that handles uploading telemetry payloads to the server.
rename from mobile/android/base/java/org/mozilla/gecko/telemetry/pings/TelemetryCorePingBuilder.java
rename to mobile/android/base/java/org/mozilla/gecko/telemetry/core/TelemetryCorePingBuilder.java
--- a/mobile/android/base/java/org/mozilla/gecko/telemetry/pings/TelemetryCorePingBuilder.java
+++ b/mobile/android/base/java/org/mozilla/gecko/telemetry/core/TelemetryCorePingBuilder.java
@@ -1,23 +1,25 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
-package org.mozilla.gecko.telemetry.pings;
+package org.mozilla.gecko.telemetry.core;
import android.content.Context;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import org.mozilla.gecko.AppConstants;
import org.mozilla.gecko.Locales;
+import org.mozilla.gecko.telemetry.TelemetryPing;
+import org.mozilla.gecko.telemetry.TelemetryPingBuilder;
import org.mozilla.gecko.util.Experiments;
import org.mozilla.gecko.util.StringUtils;
import java.util.Locale;
/**
* Builds a {@link TelemetryPing} representing a core ping.
*
@@ -61,22 +63,22 @@ public class TelemetryCorePingBuilder ex
payload.put(ARCHITECTURE, AppConstants.ANDROID_CPU_ARCH);
payload.put(DEVICE, deviceDescriptor);
payload.put(LOCALE, Locales.getLanguageTag(Locale.getDefault()));
payload.put(OS_VERSION, Integer.toString(Build.VERSION.SDK_INT)); // A String for cross-platform reasons.
payload.putArray(EXPERIMENTS, Experiments.getActiveExperiments(context));
}
@Override
- String getDocType() {
+ public String getDocType() {
return NAME;
}
@Override
- String[] getMandatoryFields() {
+ public String[] getMandatoryFields() {
return new String[] {
ARCHITECTURE,
CLIENT_ID,
DEFAULT_SEARCH_ENGINE,
DEVICE,
LOCALE,
OS_ATTR,
OS_VERSION,
--- a/mobile/android/base/moz.build
+++ b/mobile/android/base/moz.build
@@ -566,20 +566,20 @@ gbjar.sources += ['java/org/mozilla/geck
'tabs/TabPanelBackButton.java',
'tabs/TabsGridLayout.java',
'tabs/TabsLayoutAdapter.java',
'tabs/TabsLayoutItemView.java',
'tabs/TabsListLayout.java',
'tabs/TabsPanel.java',
'tabs/TabsPanelThumbnailView.java',
'Telemetry.java',
- 'telemetry/pings/TelemetryCorePingBuilder.java',
- 'telemetry/pings/TelemetryPing.java',
- 'telemetry/pings/TelemetryPingBuilder.java',
+ 'telemetry/core/TelemetryCorePingBuilder.java',
'telemetry/TelemetryConstants.java',
+ 'telemetry/TelemetryPing.java',
+ 'telemetry/TelemetryPingBuilder.java',
'telemetry/TelemetryUploadService.java',
'TelemetryContract.java',
'text/FloatingActionModeCallback.java',
'text/FloatingToolbarTextSelection.java',
'text/TextAction.java',
'text/TextSelection.java',
'TextSelectionHandle.java',
'ThumbnailHelper.java',
rename from mobile/android/tests/background/junit4/src/org/mozilla/gecko/telemetry/pings/TestTelemetryPingBuilder.java
rename to mobile/android/tests/background/junit4/src/org/mozilla/gecko/telemetry/TestTelemetryPingBuilder.java
--- a/mobile/android/tests/background/junit4/src/org/mozilla/gecko/telemetry/pings/TestTelemetryPingBuilder.java
+++ b/mobile/android/tests/background/junit4/src/org/mozilla/gecko/telemetry/TestTelemetryPingBuilder.java
@@ -1,15 +1,15 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, you can obtain one at http://mozilla.org/MPL/2.0/.
*/
-package org.mozilla.gecko.telemetry.pings;
+package org.mozilla.gecko.telemetry;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mozilla.gecko.background.testhelpers.TestRunner;
import static org.junit.Assert.*;
/**
@@ -40,22 +40,22 @@ public class TestTelemetryPingBuilder {
}
private static class NoMandatoryFieldsBuilder extends TelemetryPingBuilder {
public NoMandatoryFieldsBuilder() {
super("");
}
@Override
- String getDocType() {
+ public String getDocType() {
return "";
}
@Override
- String[] getMandatoryFields() {
+ public String[] getMandatoryFields() {
return new String[0];
}
public NoMandatoryFieldsBuilder setNonMandatoryField() {
payload.put("non-mandatory", true);
return this;
}
}
@@ -63,22 +63,22 @@ public class TestTelemetryPingBuilder {
private static class MandatoryFieldsBuilder extends TelemetryPingBuilder {
private static final String MANDATORY_FIELD = "mandatory-field";
public MandatoryFieldsBuilder() {
super("");
}
@Override
- String getDocType() {
+ public String getDocType() {
return "";
}
@Override
- String[] getMandatoryFields() {
+ public String[] getMandatoryFields() {
return new String[] {
MANDATORY_FIELD,
};
}
public MandatoryFieldsBuilder setNonMandatoryField() {
payload.put("non-mandatory", true);
return this;