Android Open Source - mobcomp-httpclient Progress Multipart Entity






From Project

Back to project page mobcomp-httpclient.

License

The source code is released under:

Written by: Markus Tacker <m@coderbyheart.de> | http://coderbyheart.de/ Copyright (c) Markus Tacker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and ...

If you think the Android project mobcomp-httpclient 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

package de.hsrm.mi.mobcomp.httpclientdemo.extra;
//  w  w w .  j av a  2  s  .  co m
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.charset.Charset;

import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntity;

/**
 * Mit Hilfe dieser Klasse bekommt man whrend des Uploads den Status mit.
 * 
 * @see http://toolongdidntread.com/android/android-multipart-post-with-progress-bar/
 * @author John Russels <johnrussells@gmail.com>
 */
public class ProgressMultipartEntity extends MultipartEntity {

  private final ProgressListener listener;

  public ProgressMultipartEntity(final ProgressListener listener) {
    super();
    this.listener = listener;
  }

  public ProgressMultipartEntity(final HttpMultipartMode mode,
      final ProgressListener listener) {
    super(mode);
    this.listener = listener;
  }

  public ProgressMultipartEntity(HttpMultipartMode mode,
      final String boundary, final Charset charset,
      final ProgressListener listener) {
    super(mode, boundary, charset);
    this.listener = listener;
  }

  @Override
  public void writeTo(final OutputStream outstream) throws IOException {
    super.writeTo(new CountingOutputStream(outstream, this.listener));
  }

  public static interface ProgressListener {
    void transferred(long num);
  }

  public static class CountingOutputStream extends FilterOutputStream {

    private final ProgressListener listener;
    private long transferred;

    public CountingOutputStream(final OutputStream out,
        final ProgressListener listener) {
      super(out);
      this.listener = listener;
      this.transferred = 0;
    }

    public void write(byte[] b, int off, int len) throws IOException {
      out.write(b, off, len);
      this.transferred += len;
      this.listener.transferred(this.transferred);
    }

    public void write(int b) throws IOException {
      out.write(b);
      this.transferred++;
      this.listener.transferred(this.transferred);
    }
  }

}




Java Source Code List

de.hsrm.mi.mobcomp.httpclientdemo.FlickrAuthActivity.java
de.hsrm.mi.mobcomp.httpclientdemo.LoadActivity.java
de.hsrm.mi.mobcomp.httpclientdemo.MainActivity.java
de.hsrm.mi.mobcomp.httpclientdemo.MenuActivity.java
de.hsrm.mi.mobcomp.httpclientdemo.PrefsActivity.java
de.hsrm.mi.mobcomp.httpclientdemo.SendActivity.java
de.hsrm.mi.mobcomp.httpclientdemo.extra.IdFile.java
de.hsrm.mi.mobcomp.httpclientdemo.extra.ParameterRunnable.java
de.hsrm.mi.mobcomp.httpclientdemo.extra.ProgressMultipartEntity.java
de.hsrm.mi.mobcomp.httpclientdemo.flickr.AuthReader.java
de.hsrm.mi.mobcomp.httpclientdemo.flickr.FrobReader.java
de.hsrm.mi.mobcomp.httpclientdemo.flickr.ImageLoader.java
de.hsrm.mi.mobcomp.httpclientdemo.flickr.RestAPI.java
de.hsrm.mi.mobcomp.httpclientdemo.flickr.SetsReader.java
de.hsrm.mi.mobcomp.httpclientdemo.flickr.SizesReader.java
de.hsrm.mi.mobcomp.httpclientdemo.flickr.UploadReader.java
de.hsrm.mi.mobcomp.httpclientdemo.flickr.XmlReader.java