// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. package org.chromium.chrome.browser.omaha; /** * Represents parameters for a single XML request to send to the server. * Persisted requests (those that must be resent in case of failure) should use the same ID from * the first failed attempt. */ public class RequestData { private final long mCreationTimestamp; private final boolean mSendInstallEvent; private final String mRequestID; private final String mInstallSource; public RequestData(boolean sendInstallEvent, long timeStamp, String requestID, String installSource) { assert requestID != null; mSendInstallEvent = sendInstallEvent; mCreationTimestamp = timeStamp; mRequestID = requestID; mInstallSource = installSource; } /** * Whether or not we are telling the server about a new install. * False indicates a ping/updatecheck. */ public boolean isSendInstallEvent() { return mSendInstallEvent; } /** * ID of the request we're sending to the server. */ public String getRequestID() { return mRequestID; } /** * Get the age in milliseconds. */ public long getAgeInMilliseconds(long currentTimestamp) { return currentTimestamp - mCreationTimestamp; } /** * Get the age in seconds. */ public long getAgeInSeconds(long currentTimestamp) { return getAgeInMilliseconds(currentTimestamp) / 1000; } /** * Get the exact timestamp when this was created. */ public long getCreationTimestamp() { return mCreationTimestamp; } /** * Get the install source for the APK. Values can include * {@link OmahaClient#INSTALL_SOURCE_SYSTEM} or {@link OmahaClient#INSTALL_SOURCE_ORGANIC}. */ public String getInstallSource() { return mInstallSource; } }