Android Open Source - SelfossAndroidClient Load Image Operation






From Project

Back to project page SelfossAndroidClient.

License

The source code is released under:

GNU General Public License

If you think the Android project SelfossAndroidClient 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 org.vester.selfoss.operation;
/* www.j a  v  a2s  .  c  o m*/
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import org.json.JSONException;
import org.vester.selfoss.icons.IconLoader;
import org.vester.selfoss.model.FeedEntry;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Handler;
import android.widget.ImageView;

public class LoadImageOperation implements Operation {
  private final ImageView imgIcon;
  private final FeedEntry entry;
  private String url;
  private Context context;
  private Handler guiThread;

  protected LoadImageOperation(ImageView imgIcon, FeedEntry entry, Context context, Handler guiThread) {
    this.imgIcon = imgIcon;
    this.entry = entry;
    this.context = context;
    this.guiThread = guiThread;
  }

  @Override
  public void writeOutput(HttpURLConnection con) throws IOException {
  }

  @Override
  public void setURL(String url) {
    this.url = url;
  }

  @Override
  public void processResponse(InputStream in) throws JSONException {
    final Bitmap bitmap = Bitmap.createScaledBitmap(BitmapFactory.decodeStream(in), 32, 32, true);
    
    File f = new File(context.getCacheDir(), entry.icon);

    writeFile(bitmap, f);
    guiThread.post(new Runnable() {

      @Override
      public void run() {
        imgIcon.setImageBitmap(bitmap);
      }
    });
  }

  private void writeFile(Bitmap bitmap, File f) {
    FileOutputStream out = null;
    try {
      out = new FileOutputStream(f);
      bitmap.compress(Bitmap.CompressFormat.PNG, 80, out);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      try {
        if (out != null)
          out.close();
      } catch (Exception ex) {
        ex.printStackTrace();
      }
    }

  }

  @Override
  public String getRequestMethod() {
    return "GET";
  }

  @Override
  public URL createURL() throws MalformedURLException {
    return new URL(url + "/favicons/" + entry.icon);
  }

  @Override
  public void setLogin(String login) {
  }

  @Override
  public int getOperationTitle() {
    return -1;
  }
}




Java Source Code List

org.vester.selfoss.ErrorCallback.java
org.vester.selfoss.FeedEntryAdapter.java
org.vester.selfoss.FeedEntryContentActivity.java
org.vester.selfoss.FeedEntryContentFragment.java
org.vester.selfoss.FeedEntryMainActivity.java
org.vester.selfoss.FeedEntryRowFragment.java
org.vester.selfoss.SelfossTask.java
org.vester.selfoss.SettingsActivity.java
org.vester.selfoss.SetupActivity.java
org.vester.selfoss.StartupActivity.java
org.vester.selfoss.icons.IconLoader.java
org.vester.selfoss.listener.MarkAsUnreadOperationListener.java
org.vester.selfoss.listener.StarOperationListener.java
org.vester.selfoss.model.FeedEntry.java
org.vester.selfoss.model.MessageEntry.java
org.vester.selfoss.operation.FetchItemsOperation.java
org.vester.selfoss.operation.FetchMoreItemsOperation.java
org.vester.selfoss.operation.LoadImageOperation.java
org.vester.selfoss.operation.LoginOperation.java
org.vester.selfoss.operation.MarkAllAsReadOperation.java
org.vester.selfoss.operation.MarkAsReadOperation.java
org.vester.selfoss.operation.MarkAsUnreadOperation.java
org.vester.selfoss.operation.OperationFactory.java
org.vester.selfoss.operation.Operation.java
org.vester.selfoss.operation.SelfossOperationFactory.java
org.vester.selfoss.operation.StarOperation.java
org.vester.selfoss.operation.UnstarOperation.java