Android Open Source - RZAndroidBaseUtils Async Drawable Wrapper






From Project

Back to project page RZAndroidBaseUtils.

License

The source code is released under:

MIT License

If you think the Android project RZAndroidBaseUtils 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 com.raizlabs.graphics.drawable.async;
//from www.  j a v a2 s  . co  m
import java.io.IOException;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

import android.annotation.TargetApi;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Rect;
import android.graphics.Region;
import android.graphics.PorterDuff.Mode;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;

/**
 * Class which wraps an existing {@link Drawable} and acts as a {@link Drawable},
 * but also provides additional information about an {@link AsyncDrawableTask}
 * in order to bind task data to a view. This allows us to assign and obtain
 * tasks via the Drawable object itself.
 * 
 * @author Dylan James
 *
 * @param <T> The type of the key of the {@link AsyncDrawableTask} that will be
 * associated with this Drawable.
 */
public class AsyncDrawableWrapper<T> extends Drawable implements AsyncDrawable<T> {
  private Drawable drawable;
  private AsyncDrawableTask<T> task;
  
  /**
   * Constructs an {@link AsyncDrawableWrapper} which wraps the given
   * {@link Drawable} and is tagged with the given {@link AsyncDrawableTask}
   * @param drawable The Drawable to wrap.
   * @param task The task to tag the Drawable with.
   */
  public AsyncDrawableWrapper(Drawable drawable, AsyncDrawableTask<T> task) {
    if (drawable == null) {
      throw new IllegalArgumentException("Drawable may not be null");
    }
    this.drawable = drawable;
    this.task = task;
  }
  
  public Drawable getDrawble() { return drawable; }
  
  @Override
  public AsyncDrawableTask<T> getTask() {
    return task;
  }

  ////////////////////////////////////////////
  // Forwarding methods to wrapped drawable //
  ////////////////////////////////////////////
  @Override
  public void clearColorFilter() {
    drawable.clearColorFilter();
  }
  
  @Override
  public void draw(Canvas canvas) {
    drawable.draw(canvas);
  }
  
  @TargetApi(11)
  @Override
  public Callback getCallback() {
    return drawable.getCallback();
  }
  
  @Override
  public int getChangingConfigurations() {
    return drawable.getChangingConfigurations();
  }
  
  @Override
  public ConstantState getConstantState() {
    return drawable.getConstantState();
  }
  
  @Override
  public Drawable getCurrent() {
    return drawable.getCurrent();
  }
  
  @Override
  public int getIntrinsicHeight() {
    return drawable.getIntrinsicHeight();
  }
  
  @Override
  public int getIntrinsicWidth() {
    return drawable.getIntrinsicWidth();
  }
  
  @Override
  public int getMinimumHeight() {
    return drawable.getMinimumHeight();
  }
  
  @Override
  public int getMinimumWidth() {
    return drawable.getMinimumWidth();
  }
  
  @Override
  public int getOpacity() {
    return drawable.getOpacity();
  }
  
  @Override
  public boolean getPadding(Rect padding) {
    return drawable.getPadding(padding);
  }
  
  @Override
  public int[] getState() {
    return drawable.getState();
  }
  
  @Override
  public Region getTransparentRegion() {
    return drawable.getTransparentRegion();
  }

  @Override
  public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs)
      throws XmlPullParserException, IOException {
    drawable.inflate(r, parser, attrs);
  }
  
  @Override
  public void invalidateSelf() {
    drawable.invalidateSelf();
  }
  
  @Override
  public boolean isStateful() {
    return drawable.isStateful();
  }
  
  @TargetApi(11)
  @Override
  public void jumpToCurrentState() {
    drawable.jumpToCurrentState();
  }
  
  @Override
  public Drawable mutate() {
    return drawable.mutate();
  }
  
  @Override
  public void scheduleSelf(Runnable what, long when) {
    drawable.scheduleSelf(what, when);
  }
  
  @Override
  public void setAlpha(int alpha) {
    drawable.setAlpha(alpha);
  }

  @Override
  public void setBounds(int left, int top, int right, int bottom) {
    drawable.setBounds(left, top, right, bottom);
  }
  
  @Override
  public void setBounds(Rect bounds) {
    drawable.setBounds(bounds);
  }
  
  @Override
  public void setChangingConfigurations(int configs) {
    drawable.setChangingConfigurations(configs);
  }
  
  @Override
  public void setColorFilter(ColorFilter cf) {
    drawable.setColorFilter(cf);
  }
  
  @Override
  public void setColorFilter(int color, Mode mode) {
    drawable.setColorFilter(color, mode);
  }
  
  @Override
  public void setDither(boolean dither) {
    drawable.setDither(dither);
  }
  
  @Override
  public void setFilterBitmap(boolean filter) {
    drawable.setFilterBitmap(filter);
  }
  
  @Override
  public boolean setState(int[] stateSet) {
    return drawable.setState(stateSet);
  }
  
  @Override
  public boolean setVisible(boolean visible, boolean restart) {
    return drawable.setVisible(visible, restart);
  }
  
  @Override
  public void unscheduleSelf(Runnable what) {
    drawable.unscheduleSelf(what);
  }
}




Java Source Code List

com.raizlabs.baseutils.CompatibilityUtils.java
com.raizlabs.baseutils.IOUtils.java
com.raizlabs.baseutils.Logger.java
com.raizlabs.baseutils.Math.java
com.raizlabs.baseutils.StringUtils.java
com.raizlabs.baseutils.ThreadingUtils.java
com.raizlabs.baseutils.Wrapper.java
com.raizlabs.baseutils.examples.MainActivity.java
com.raizlabs.baseutils.examples.asyncdrawable.AsyncDrawableExampleActivity.java
com.raizlabs.baseutils.examples.asyncdrawable.AsyncDrawableListExampleActivity.java
com.raizlabs.baseutils.examples.simplegenericadapter.SimpleGenericAdapterExampleActivity.java
com.raizlabs.baseutils.examples.viewgroupadapter.ViewGroupAdapterExampleActivity.java
com.raizlabs.baseutils.examples.viewholderstrategy.SimpleViewHolderStrategyExampleActivity.java
com.raizlabs.collections.ListUtils.java
com.raizlabs.collections.MappableSet.java
com.raizlabs.collections.TransactionalHashSet.java
com.raizlabs.concurrent.BasePrioritizedRunnable.java
com.raizlabs.concurrent.ConcurrencyUtils.java
com.raizlabs.concurrent.PrioritizedRunnable.java
com.raizlabs.concurrent.Prioritized.java
com.raizlabs.content.sharing.SharingUtils.java
com.raizlabs.database.CursorIterable.java
com.raizlabs.database.CursorIterator.java
com.raizlabs.events.EventListener.java
com.raizlabs.events.Event.java
com.raizlabs.events.ProgressListener.java
com.raizlabs.events.SimpleEventListener.java
com.raizlabs.functions.Delegate.java
com.raizlabs.functions.Predicate.java
com.raizlabs.functions.Provider.java
com.raizlabs.graphics.ImageFactory.java
com.raizlabs.graphics.drawable.async.AsyncDrawableTask.java
com.raizlabs.graphics.drawable.async.AsyncDrawableUtils.java
com.raizlabs.graphics.drawable.async.AsyncDrawableWrapper.java
com.raizlabs.graphics.drawable.async.AsyncDrawable.java
com.raizlabs.graphics.drawable.async.BaseAsyncDrawableTask.java
com.raizlabs.imagecaching.ImageCache.java
com.raizlabs.imagecaching.PrefixedImageCacheAdapter.java
com.raizlabs.imagecaching.StubImageCache.java
com.raizlabs.json.JSONArrayParserDelegate.java
com.raizlabs.json.JSONHelper.java
com.raizlabs.synchronization.OneShotLock.java
com.raizlabs.tasks.RZAsyncTaskEvent.java
com.raizlabs.tasks.RZAsyncTaskListener.java
com.raizlabs.tasks.RZAsyncTask.java
com.raizlabs.util.observable.ObservableData.java
com.raizlabs.util.observable.ObservableListAdapter.java
com.raizlabs.util.observable.ObservableList.java
com.raizlabs.view.ViewCompatibility.java
com.raizlabs.view.animation.AnimationListenerWrapper.java
com.raizlabs.view.animation.RelativeLayoutParamsAnimation.java
com.raizlabs.view.animation.ResizeAnimation.java
com.raizlabs.widget.EvenLinearLayout.java
com.raizlabs.widget.ImageMixView.java
com.raizlabs.widget.SlideRevealLayout.java
com.raizlabs.widget.ViewUtils.java
com.raizlabs.widget.adapters.ListBasedAdapter.java
com.raizlabs.widget.adapters.SimpleGenericAdapter.java
com.raizlabs.widget.adapters.ViewGroupAdapter.java
com.raizlabs.widget.adapters.ViewHolderStrategyAdapter.java
com.raizlabs.widget.utils.SimpleViewHolderStrategy.java
com.raizlabs.widget.utils.ViewHolderStrategyConverter.java
com.raizlabs.widget.utils.ViewHolderStrategyUtils.java
com.raizlabs.widget.utils.ViewHolderStrategy.java