Android Open Source - RZAndroidBaseUtils Animation Listener 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.view.animation;
//from w  w  w. j a  va 2  s  .c  o  m
import java.util.HashSet;

import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;

/**
 * {@link AnimationListener} implementation which manages a set of
 * other {@link AnimationListener}s. When events are called on this
 * {@link AnimationListenerWrapper}, each of the managed
 * {@link AnimationListener}s are called appropriately.
 * 
 * @author Dylan James
 *
 */
public class AnimationListenerWrapper implements AnimationListener {
  private HashSet<AnimationListener> listeners;
  
  /**
   * Constructs an empty {@link AnimationListenerWrapper}.
   */
  public AnimationListenerWrapper() {
    listeners = new HashSet<AnimationListener>();
  }
  
  /**
   * Constructs an {@link AnimationListenerWrapper} and subscribes the
   * given {@link AnimationListener}.
   * @param listener An {@link AnimationListener} to subscribe to events.
   */
  public AnimationListenerWrapper(AnimationListener listener) {
    this();
    addListener(listener);
  }
  
  /**
   * Constructs an {@link AnimationListenerWrapper} and subscribes all
   * the given {@link AnimationListener}s to events.
   * @param listeners
   */
  public AnimationListenerWrapper(Iterable<AnimationListener> listeners) {
    this();
    synchronized (listeners) {      
      for (AnimationListener listener : listeners) {
        this.listeners.add(listener);
      }
    }
  }
  
  /**
   * Adds an {@link AnimationListener} to be called on events.
   * @param listener The {@link AnimationListener} to subscribe.
   */
  public void addListener(AnimationListener listener) {
    if (listener != null) {
      synchronized (listeners) {        
        listeners.add(listener);
      }
    }
  }
  
  /**
   * Removes an {@link AnimationListener} so it will not receive
   * calls on future events.
   * @param listener The {@link AnimationListener} to remove.
   * @return True if the listener was removed, false if it wasn't
   * found or was null.
   */
  public boolean removeListener(AnimationListener listener) {
    if (listener != null) {
      synchronized (listeners) {
        return listeners.remove(listener);
      }
    }
    return false;
  }

  @Override
  public void onAnimationEnd(Animation animation) {
    synchronized (listeners) {
      for (AnimationListener listener : listeners) {
        listener.onAnimationEnd(animation);
      }
    }
  }

  @Override
  public void onAnimationRepeat(Animation animation) {
    synchronized (listeners) {
      for (AnimationListener listener : listeners) {
        listener.onAnimationRepeat(animation);
      }
    }
  }

  @Override
  public void onAnimationStart(Animation animation) {
    synchronized (listeners) {
      for (AnimationListener listener : listeners) {
        listener.onAnimationStart(animation);
      }
    }
  }
}




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