Bug 1250250 - Store updated seq no. before sending upload Intent. r=mfinkle
MozReview-Commit-ID: Ab2qycjDKOy
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -3973,27 +3973,26 @@ public class BrowserApp extends GeckoApp
private void uploadTelemetry(final GeckoProfile profile) {
if (!TelemetryUploadService.isUploadEnabledByProfileConfig(this, profile)) {
return;
}
final SharedPreferences sharedPrefs = GeckoSharedPrefs.forProfileName(this, profile.getName());
final int seq = sharedPrefs.getInt(TelemetryConstants.PREF_SEQ_COUNT, 1);
+ // We store synchronously before sending the Intent to ensure this sequence number will not be re-used.
+ sharedPrefs.edit().putInt(TelemetryConstants.PREF_SEQ_COUNT, seq + 1).commit();
final Intent i = new Intent(TelemetryConstants.ACTION_UPLOAD_CORE);
i.setClass(this, TelemetryUploadService.class);
i.putExtra(TelemetryConstants.EXTRA_DOC_ID, UUID.randomUUID().toString());
i.putExtra(TelemetryConstants.EXTRA_PROFILE_NAME, profile.getName());
i.putExtra(TelemetryConstants.EXTRA_PROFILE_PATH, profile.getDir().toString());
i.putExtra(TelemetryConstants.EXTRA_SEQ, seq);
startService(i);
-
- // Intent redelivery will ensure this value gets used - see TelemetryUploadService class comments for details.
- sharedPrefs.edit().putInt(TelemetryConstants.PREF_SEQ_COUNT, seq + 1).apply();
}
public static interface TabStripInterface {
public void refresh();
void setOnTabChangedListener(OnTabAddedOrRemovedListener listener);
interface OnTabAddedOrRemovedListener {
void onTabChanged();
}