Android Open Source - EBrowser Download List Adapter






From Project

Back to project page EBrowser.

License

The source code is released under:

GNU General Public License

If you think the Android project EBrowser listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Zirco Browser for Android//w w  w .j a v  a  2 s  .  co m
 * 
 * Copyright (C) 2010 J. Devauchelle and contributors.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * version 3 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

package org.zirco.model.adapters;

import java.util.Hashtable;
import java.util.List;
import java.util.Map;

import com.mrpej.ebrowser.R;
import org.zirco.model.items.DownloadItem;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageButton;
import android.widget.ProgressBar;
import android.widget.TextView;

/**
 * The adapter for the download UI list.
 */
public class DownloadListAdapter extends BaseAdapter {

  private Context mContext;
  private List<DownloadItem> mDownloads;
    
  private Map<DownloadItem, TextView> mTitleMap;
  private Map<DownloadItem, ProgressBar> mBarMap;
  private Map<DownloadItem, ImageButton> mButtonMap;
  
  /**
   * Constructor.
   * @param context The current context.
   * @param downloads The download list.
   */
  public DownloadListAdapter(Context context, List<DownloadItem> downloads) {
    mContext = context;
    mDownloads = downloads;
    mTitleMap = new Hashtable<DownloadItem, TextView>();
    mBarMap = new Hashtable<DownloadItem, ProgressBar>();
    mButtonMap = new Hashtable<DownloadItem, ImageButton>();
  }
  
  /**
   * Get a map of download item related to the UI text component representing the download title.
   * @return A Map<DownloadItem, TextView>.
   */
  public Map<DownloadItem, TextView> getTitleMap() {
    return mTitleMap;
  }
  
  /**
   * Get a map of download item related to the UI progress bar component.
   * @return A Map<DownloadItem, ProgressBar>.
   */
  public Map<DownloadItem, ProgressBar> getBarMap() {
    return mBarMap;
  }
  
  /**
   * Get a map of download item related to the UI cancel button component.
   * @return A Map<DownloadItem, ImageButton>.
   */
  public Map<DownloadItem, ImageButton> getButtonMap() {
    return mButtonMap;
  }
  
  @Override
  public int getCount() {
    return mDownloads.size();
  }

  @Override
  public Object getItem(int position) {    
    return mDownloads.get(position);
  }

  @Override
  public long getItemId(int position) {    
    return position;
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
      LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      convertView = inflater.inflate(R.layout.download_row, null);
    }
    
    final DownloadItem item = mDownloads.get(position);
    
    final ProgressBar progressBar = (ProgressBar) convertView.findViewById(R.id.DownloadRow_ProgressBar);
    final TextView fileNameView = (TextView) convertView.findViewById(R.id.DownloadRow_FileName);
    TextView urlView = (TextView) convertView.findViewById(R.id.DownloadRow_Url);
    final ImageButton stopButton = (ImageButton) convertView.findViewById(R.id.DownloadRow_StopBtn);
    
    progressBar.setIndeterminate(false);
    progressBar.setMax(100);
    progressBar.setProgress(item.getProgress());    
    
    if (item.isAborted()) {
      fileNameView.setText(String.format(mContext.getResources().getString(R.string.DownloadListActivity_Aborted), item.getFileName()));
      stopButton.setEnabled(false);
    } else if (item.isFinished()) {
      fileNameView.setText(String.format(mContext.getResources().getString(R.string.DownloadListActivity_Finished), item.getFileName()));
      stopButton.setEnabled(false);
    } else {
      fileNameView.setText(item.getFileName());
    }
    urlView.setText(item.getUrl());
        
    
    stopButton.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {
        item.abortDownload();
        stopButton.setEnabled(false);
        fileNameView.setText(String.format(mContext.getResources().getString(R.string.DownloadListActivity_Aborted), item.getFileName()));
        progressBar.setProgress(progressBar.getMax());
      }
      
    });        
    
    mTitleMap.put(item, fileNameView);
    mBarMap.put(item, progressBar);
    mButtonMap.put(item, stopButton);
    
    return convertView;
  }

}




Java Source Code List

org.emergent.android.weave.client.Base32.java
org.emergent.android.weave.client.Base64Encoder.java
org.emergent.android.weave.client.Base64.java
org.emergent.android.weave.client.BulkKeyCouplet.java
org.emergent.android.weave.client.Dbg.java
org.emergent.android.weave.client.HexEncoder.java
org.emergent.android.weave.client.Hex.java
org.emergent.android.weave.client.QueryParams.java
org.emergent.android.weave.client.QueryResult.java
org.emergent.android.weave.client.UserWeave.java
org.emergent.android.weave.client.WeaveAccountInfo.java
org.emergent.android.weave.client.WeaveBasicObject.java
org.emergent.android.weave.client.WeaveConstants.java
org.emergent.android.weave.client.WeaveCryptoUtil.java
org.emergent.android.weave.client.WeaveException.java
org.emergent.android.weave.client.WeaveFactory.java
org.emergent.android.weave.client.WeaveHeader.java
org.emergent.android.weave.client.WeaveResponse.java
org.emergent.android.weave.client.WeaveSSLSocketFactory.java
org.emergent.android.weave.client.WeaveTransport.java
org.emergent.android.weave.client.WeaveUtil.java
org.greendroid.QuickActionGrid.java
org.greendroid.QuickActionWidget.java
org.greendroid.QuickAction.java
org.zirco.controllers.Controller.java
org.zirco.events.EventConstants.java
org.zirco.events.EventController.java
org.zirco.events.IDownloadEventsListener.java
org.zirco.model.DbAdapter.java
org.zirco.model.UrlSuggestionItemComparator.java
org.zirco.model.adapters.BookmarksCursorAdapter.java
org.zirco.model.adapters.DownloadListAdapter.java
org.zirco.model.adapters.HistoryExpandableListAdapter.java
org.zirco.model.adapters.UrlSuggestionCursorAdapter.java
org.zirco.model.adapters.WeaveBookmarksCursorAdapter.java
org.zirco.model.items.BookmarkItem.java
org.zirco.model.items.DownloadItem.java
org.zirco.model.items.HistoryItem.java
org.zirco.model.items.UrlSuggestionItem.java
org.zirco.model.items.WeaveBookmarkItem.java
org.zirco.providers.BookmarksProviderWrapper.java
org.zirco.providers.WeaveColumns.java
org.zirco.providers.WeaveContentProvider.java
org.zirco.providers.ZircoBookmarksContentProvider.java
org.zirco.sync.ISyncListener.java
org.zirco.sync.WeaveSyncTask.java
org.zirco.ui.activities.AboutActivity.java
org.zirco.ui.activities.AdBlockerWhiteListActivity.java
org.zirco.ui.activities.BookmarksHistoryActivity.java
org.zirco.ui.activities.BookmarksListActivity.java
org.zirco.ui.activities.ChangelogActivity.java
org.zirco.ui.activities.DownloadsListActivity.java
org.zirco.ui.activities.EditBookmarkActivity.java
org.zirco.ui.activities.HistoryListActivity.java
org.zirco.ui.activities.IToolbarsContainer.java
org.zirco.ui.activities.MainActivity.java
org.zirco.ui.activities.MobileViewListActivity.java
org.zirco.ui.activities.WeaveBookmarksListActivity.java
org.zirco.ui.activities.preferences.BaseSpinnerCustomPreferenceActivity.java
org.zirco.ui.activities.preferences.HomepagePreferenceActivity.java
org.zirco.ui.activities.preferences.PreferencesActivity.java
org.zirco.ui.activities.preferences.SearchUrlPreferenceActivity.java
org.zirco.ui.activities.preferences.UserAgentPreferenceActivity.java
org.zirco.ui.activities.preferences.WeavePreferencesActivity.java
org.zirco.ui.activities.preferences.WeaveServerPreferenceActivity.java
org.zirco.ui.components.CustomWebViewClient.java
org.zirco.ui.components.CustomWebView.java
org.zirco.ui.runnables.DownloadRunnable.java
org.zirco.ui.runnables.FaviconUpdaterRunnable.java
org.zirco.ui.runnables.HideToolbarsRunnable.java
org.zirco.ui.runnables.HistoryUpdater.java
org.zirco.ui.runnables.XmlHistoryBookmarksExporter.java
org.zirco.ui.runnables.XmlHistoryBookmarksImporter.java
org.zirco.utils.AnimationManager.java
org.zirco.utils.ApplicationUtils.java
org.zirco.utils.Constants.java
org.zirco.utils.DateUtils.java
org.zirco.utils.IOUtils.java
org.zirco.utils.ProxyChangeReceiver.java
org.zirco.utils.ProxySettings.java
org.zirco.utils.UrlUtils.java