summaryrefslogtreecommitdiffstats
path: root/ui/src/com/android/providers/downloads/ui/DownloadAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'ui/src/com/android/providers/downloads/ui/DownloadAdapter.java')
-rw-r--r--ui/src/com/android/providers/downloads/ui/DownloadAdapter.java215
1 files changed, 0 insertions, 215 deletions
diff --git a/ui/src/com/android/providers/downloads/ui/DownloadAdapter.java b/ui/src/com/android/providers/downloads/ui/DownloadAdapter.java
deleted file mode 100644
index 9ce2a986..00000000
--- a/ui/src/com/android/providers/downloads/ui/DownloadAdapter.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Copyright (C) 2010 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.android.providers.downloads.ui;
-
-import android.app.DownloadManager;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.content.res.Resources;
-import android.database.Cursor;
-import android.graphics.drawable.Drawable;
-import android.net.Uri;
-import android.text.format.Formatter;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.CursorAdapter;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import java.text.DateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.List;
-
-/**
- * List adapter for Cursors returned by {@link DownloadManager}.
- */
-public class DownloadAdapter extends CursorAdapter {
- private final DownloadList mDownloadList;
- private Cursor mCursor;
- private Resources mResources;
- private DateFormat mDateFormat;
- private DateFormat mTimeFormat;
-
- private final int mTitleColumnId;
- private final int mDescriptionColumnId;
- private final int mStatusColumnId;
- private final int mReasonColumnId;
- private final int mTotalBytesColumnId;
- private final int mMediaTypeColumnId;
- private final int mDateColumnId;
- private final int mIdColumnId;
- private final int mFileNameColumnId;
-
- public DownloadAdapter(DownloadList downloadList, Cursor cursor) {
- super(downloadList, cursor);
- mDownloadList = downloadList;
- mCursor = cursor;
- mResources = mDownloadList.getResources();
- mDateFormat = DateFormat.getDateInstance(DateFormat.SHORT);
- mTimeFormat = DateFormat.getTimeInstance(DateFormat.SHORT);
-
- mIdColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_ID);
- mTitleColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_TITLE);
- mDescriptionColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_DESCRIPTION);
- mStatusColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_STATUS);
- mReasonColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_REASON);
- mTotalBytesColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_TOTAL_SIZE_BYTES);
- mMediaTypeColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_MEDIA_TYPE);
- mDateColumnId =
- cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LAST_MODIFIED_TIMESTAMP);
- mFileNameColumnId =
- cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_FILENAME);
- }
-
- public View newView() {
- final DownloadItem view = (DownloadItem) LayoutInflater.from(mDownloadList)
- .inflate(R.layout.download_list_item, null);
- view.setDownloadListObj(mDownloadList);
- return view;
- }
-
- public void bindView(View convertView, int position) {
- if (!(convertView instanceof DownloadItem)) {
- return;
- }
-
- long downloadId = mCursor.getLong(mIdColumnId);
- ((DownloadItem) convertView).setData(downloadId, position,
- mCursor.getString(mFileNameColumnId),
- mCursor.getString(mMediaTypeColumnId));
-
- // Retrieve the icon for this download
- retrieveAndSetIcon(convertView);
-
- String title = mCursor.getString(mTitleColumnId);
- if (title.isEmpty()) {
- title = mResources.getString(R.string.missing_title);
- }
- setTextForView(convertView, R.id.download_title, title);
- setTextForView(convertView, R.id.domain, mCursor.getString(mDescriptionColumnId));
- setTextForView(convertView, R.id.size_text, getSizeText());
-
- final int status = mCursor.getInt(mStatusColumnId);
- final CharSequence statusText;
- if (status == DownloadManager.STATUS_SUCCESSFUL) {
- statusText = getDateString();
- } else {
- statusText = mResources.getString(getStatusStringId(status));
- }
- setTextForView(convertView, R.id.status_text, statusText);
-
- ((DownloadItem) convertView).getCheckBox()
- .setChecked(mDownloadList.isDownloadSelected(downloadId));
- }
-
- private String getDateString() {
- Date date = new Date(mCursor.getLong(mDateColumnId));
- if (date.before(getStartOfToday())) {
- return mDateFormat.format(date);
- } else {
- return mTimeFormat.format(date);
- }
- }
-
- private Date getStartOfToday() {
- Calendar today = new GregorianCalendar();
- today.set(Calendar.HOUR_OF_DAY, 0);
- today.set(Calendar.MINUTE, 0);
- today.set(Calendar.SECOND, 0);
- today.set(Calendar.MILLISECOND, 0);
- return today.getTime();
- }
-
- private String getSizeText() {
- long totalBytes = mCursor.getLong(mTotalBytesColumnId);
- String sizeText = "";
- if (totalBytes >= 0) {
- sizeText = Formatter.formatFileSize(mContext, totalBytes);
- }
- return sizeText;
- }
-
- private int getStatusStringId(int status) {
- switch (status) {
- case DownloadManager.STATUS_FAILED:
- return R.string.download_error;
-
- case DownloadManager.STATUS_SUCCESSFUL:
- return R.string.download_success;
-
- case DownloadManager.STATUS_PENDING:
- case DownloadManager.STATUS_RUNNING:
- return R.string.download_running;
-
- case DownloadManager.STATUS_PAUSED:
- final int reason = mCursor.getInt(mReasonColumnId);
- switch (reason) {
- case DownloadManager.PAUSED_QUEUED_FOR_WIFI:
- return R.string.download_queued;
- default:
- return R.string.download_running;
- }
- }
- throw new IllegalStateException("Unknown status: " + mCursor.getInt(mStatusColumnId));
- }
-
- private void retrieveAndSetIcon(View convertView) {
- String mediaType = mCursor.getString(mMediaTypeColumnId);
- ImageView iconView = (ImageView) convertView.findViewById(R.id.download_icon);
- iconView.setVisibility(View.INVISIBLE);
-
- if (mediaType == null) {
- return;
- }
-
- Intent intent = new Intent(Intent.ACTION_VIEW);
- intent.setDataAndType(Uri.fromParts("file", "", null), mediaType);
- PackageManager pm = mContext.getPackageManager();
- List<ResolveInfo> list = pm.queryIntentActivities(intent,
- PackageManager.MATCH_DEFAULT_ONLY);
- if (list.size() == 0) {
- // no icon found for this mediatype. use "unknown" icon
- iconView.setImageResource(R.drawable.ic_download_misc_file_type);
- } else {
- Drawable icon = list.get(0).activityInfo.loadIcon(pm);
- iconView.setImageDrawable(icon);
- }
- iconView.setVisibility(View.VISIBLE);
- }
-
- private void setTextForView(View parent, int textViewId, CharSequence text) {
- TextView view = (TextView) parent.findViewById(textViewId);
- view.setText(text);
- }
-
- // CursorAdapter overrides
-
- @Override
- public View newView(Context context, Cursor cursor, ViewGroup parent) {
- return newView();
- }
-
- @Override
- public void bindView(View view, Context context, Cursor cursor) {
- bindView(view, cursor.getPosition());
- }
-}