diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /mobile/android/base/java/org/mozilla/gecko/telemetry/schedulers | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'mobile/android/base/java/org/mozilla/gecko/telemetry/schedulers')
2 files changed, 58 insertions, 0 deletions
diff --git a/mobile/android/base/java/org/mozilla/gecko/telemetry/schedulers/TelemetryUploadAllPingsImmediatelyScheduler.java b/mobile/android/base/java/org/mozilla/gecko/telemetry/schedulers/TelemetryUploadAllPingsImmediatelyScheduler.java new file mode 100644 index 000000000..047a646c3 --- /dev/null +++ b/mobile/android/base/java/org/mozilla/gecko/telemetry/schedulers/TelemetryUploadAllPingsImmediatelyScheduler.java @@ -0,0 +1,32 @@ +/* + * 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.schedulers; + +import android.content.Context; +import android.content.Intent; +import org.mozilla.gecko.telemetry.stores.TelemetryPingStore; +import org.mozilla.gecko.telemetry.TelemetryUploadService; + +/** + * Schedules an upload with all pings to be sent immediately. + */ +public class TelemetryUploadAllPingsImmediatelyScheduler implements TelemetryUploadScheduler { + + @Override + public boolean isReadyToUpload(final TelemetryPingStore store) { + // We're ready since we don't have any conditions to wait on (e.g. on wifi, accumulated X pings). + return true; + } + + @Override + public void scheduleUpload(final Context applicationContext, final TelemetryPingStore store) { + final Intent i = new Intent(TelemetryUploadService.ACTION_UPLOAD); + i.setClass(applicationContext, TelemetryUploadService.class); + i.putExtra(TelemetryUploadService.EXTRA_STORE, store); + applicationContext.startService(i); + } +} diff --git a/mobile/android/base/java/org/mozilla/gecko/telemetry/schedulers/TelemetryUploadScheduler.java b/mobile/android/base/java/org/mozilla/gecko/telemetry/schedulers/TelemetryUploadScheduler.java new file mode 100644 index 000000000..63305aad5 --- /dev/null +++ b/mobile/android/base/java/org/mozilla/gecko/telemetry/schedulers/TelemetryUploadScheduler.java @@ -0,0 +1,26 @@ +/* + * 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.schedulers; + +import android.content.Context; +import org.mozilla.gecko.telemetry.stores.TelemetryPingStore; + +/** + * An implementation of this class can investigate the given {@link TelemetryPingStore} to + * decide if it's ready to upload the pings inside that Store (e.g. on wifi? have we + * accumulated X pings?) and can schedule that upload. Typically, the upload will be + * scheduled by sending an {@link android.content.Intent} to the + * {@link org.mozilla.gecko.telemetry.TelemetryUploadService}, either immediately or + * via an external scheduler (e.g. {@link android.app.job.JobScheduler}). + * + * N.B.: If the Store is not ready to upload, an implementation *should not* try to reschedule + * the check to see if it's time to upload - this is expected to be handled by the caller. + */ +public interface TelemetryUploadScheduler { + boolean isReadyToUpload(TelemetryPingStore store); + void scheduleUpload(Context applicationContext, TelemetryPingStore store); +} |