///*
// * 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.konka.music.adapter;
//
//import java.text.DateFormat;
//import java.util.Calendar;
//import java.util.Date;
//import java.util.GregorianCalendar;
//import java.util.List;
//
//import com.konka.music.core.providers.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.CheckBox;
//import android.widget.CursorAdapter;
//import android.widget.ImageView;
//import android.widget.ProgressBar;
//import android.widget.TextView;
//
///**
// */
//public class DownloadAdapter extends CursorAdapter {
// private Context mContext;
// private Cursor mCursor;
// private DownloadSelectListener mDownloadSelectionListener;
// private Resources mResources;
// private DateFormat mDateFormat;
// private DateFormat mTimeFormat;
//
// final private int mTitleColumnId;
// final private int mStatusColumnId;
// final private int mReasonColumnId;
// final private int mTotalBytesColumnId;
// final private int mCurrentBytesColumnId;
// final private int mMediaTypeColumnId;
// final private int mDateColumnId;
// final private int mIdColumnId;
//
// public DownloadAdapter(Context context, Cursor cursor, boolean autoRequery) {
// super(context, cursor, autoRequery);
// mContext = context;
// mCursor = cursor;
// mResources = mContext.getResources();
// mDateFormat = DateFormat.getDateInstance(DateFormat.SHORT);
// mTimeFormat = DateFormat.getTimeInstance(DateFormat.SHORT);
//
// mIdColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_ID);
// mTitleColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_TITLE);
// mStatusColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_STATUS);
// mReasonColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_REASON);
// mTotalBytesColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_TOTAL_SIZE_BYTES);
// mCurrentBytesColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR);
// mMediaTypeColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_MEDIA_TYPE);
// mDateColumnId = cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LAST_MODIFIED_TIMESTAMP);
// }
//
// public View newView() {
// DownloadItem view = (DownloadItem) LayoutInflater.from(mContext).inflate(R.layout.download_list_item, null);
// view.setSelectListener(mDownloadSelectionListener);
// return view;
// }
//
// public void bindView(View convertView) {
// if (!(convertView instanceof DownloadItem)) {
// return;
// }
//
// long downloadId = mCursor.getLong(mIdColumnId);
// ((DownloadItem) convertView).setDownloadId(downloadId);
//
// // Retrieve the icon for this download
// retrieveAndSetIcon(convertView);
//
// String title = mCursor.getString(mTitleColumnId);
// long totalBytes = mCursor.getLong(mTotalBytesColumnId);
// long currentBytes = mCursor.getLong(mCurrentBytesColumnId);
// int status = mCursor.getInt(mStatusColumnId);
//
// if (title.length() == 0) {
// title = mResources.getString(R.string.missing_title);
// }
// setTextForView(convertView, R.id.download_title, title);
//
// int progress = getProgressValue(totalBytes, currentBytes);
//
// boolean indeterminate = status == DownloadManager.STATUS_PENDING;
// ProgressBar progressBar = (ProgressBar) convertView.findViewById(R.id.download_progress);
// progressBar.setIndeterminate(indeterminate);
// if (!indeterminate) {
// progressBar.setProgress(progress);
// }
// if (status == DownloadManager.STATUS_FAILED || status == DownloadManager.STATUS_SUCCESSFUL) {
// progressBar.setVisibility(View.GONE);
// } else {
// progressBar.setVisibility(View.VISIBLE);
// }
//
// setTextForView(convertView, R.id.size_text, getSizeText(totalBytes));
// setTextForView(convertView, R.id.status_text, mResources.getString(getStatusStringId(status)));
// setTextForView(convertView, R.id.last_modified_date, getDateString());
//
// CheckBox checkBox = (CheckBox) convertView.findViewById(R.id.download_checkbox);
// checkBox.setChecked(mDownloadSelectionListener.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();
// }
//
// public int getProgressValue(long totalBytes, long currentBytes) {
// if (totalBytes == -1) {
// return 0;
// }
// return (int) (currentBytes * 100 / totalBytes);
// }
//
// private String getSizeText(long totalBytes) {
// 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:
// if (mCursor.getInt(mReasonColumnId) == DownloadManager.PAUSED_QUEUED_FOR_WIFI) {
// return R.string.download_queued;
// } else {
// return R.string.download_paused;
// }
// }
// 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, String 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);
// }
//}