/* * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.google.android.vending.expansion.downloader.impl; import com.google.android.vending.expansion.downloader.Constants; import com.google.android.vending.expansion.downloader.Helpers; import android.util.Log; /** * Representation of information about an individual download from the database. */ public class DownloadInfo { public String mUri; public final int mIndex; public final String mFileName; public String mETag; public long mTotalBytes; public long mCurrentBytes; public long mLastMod; public int mStatus; public int mControl; public int mNumFailed; public int mRetryAfter; public int mRedirectCount; boolean mInitialized; public int mFuzz; public DownloadInfo(int index, String fileName, String pkg) { mFuzz = Helpers.sRandom.nextInt(1001); mFileName = fileName; mIndex = index; } public void resetDownload() { mCurrentBytes = 0; mETag = ""; mLastMod = 0; mStatus = 0; mControl = 0; mNumFailed = 0; mRetryAfter = 0; mRedirectCount = 0; } /** * Returns the time when a download should be restarted. */ public long restartTime(long now) { if (mNumFailed == 0) { return now; } if (mRetryAfter > 0) { return mLastMod + mRetryAfter; } return mLastMod + Constants.RETRY_FIRST_DELAY * (1000 + mFuzz) * (1 << (mNumFailed - 1)); } public void logVerboseInfo() { Log.v(Constants.TAG, "Service adding new entry"); Log.v(Constants.TAG, "FILENAME: " + mFileName); Log.v(Constants.TAG, "URI : " + mUri); Log.v(Constants.TAG, "FILENAME: " + mFileName); Log.v(Constants.TAG, "CONTROL : " + mControl); Log.v(Constants.TAG, "STATUS : " + mStatus); Log.v(Constants.TAG, "FAILED_C: " + mNumFailed); Log.v(Constants.TAG, "RETRY_AF: " + mRetryAfter); Log.v(Constants.TAG, "REDIRECT: " + mRedirectCount); Log.v(Constants.TAG, "LAST_MOD: " + mLastMod); Log.v(Constants.TAG, "TOTAL : " + mTotalBytes); Log.v(Constants.TAG, "CURRENT : " + mCurrentBytes); Log.v(Constants.TAG, "ETAG : " + mETag); } }