Android Open Source - FreeFlow Layout Changeset






From Project

Back to project page FreeFlow.

License

The source code is released under:

Apache License

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

/*******************************************************************************
 * Copyright 2013 Comcast Cable Communications Management, LLC
 * /*from  w ww .  j  a  va 2 s.  c om*/
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/
package com.comcast.freeflow.core;

import java.util.ArrayList;
import java.util.List;

import android.graphics.Rect;
import android.util.Pair;

import com.comcast.freeflow.animations.FreeFlowLayoutAnimator;

public class LayoutChangeset {
  protected List<Pair<FreeFlowItem, Rect>> moved;
  protected List<FreeFlowItem> removed;
  protected List<FreeFlowItem> added;

  public LayoutChangeset() {
    moved = new ArrayList<Pair<FreeFlowItem, Rect>>();
    removed = new ArrayList<FreeFlowItem>();
    added = new ArrayList<FreeFlowItem>();
  }

  public void addToMoved(FreeFlowItem proxy, Rect oldFrame) {
    moved.add(new Pair<FreeFlowItem, Rect>(proxy, oldFrame));
  }

  public void addToDeleted(FreeFlowItem proxy) {
    removed.add(proxy);
  }

  public void addToAdded(FreeFlowItem proxy) {
    added.add(proxy);
  }

  /**
   * Returns the list of FreeFlowItems that will be added because they are
   * present in the new Layout that the FreeFlowContainer is transitioning to.
   * The views representing these items are already placed on the stage before
   * the LayoutAnimator is called.
   * 
   */
  public List<FreeFlowItem> getAdded() {
    return added;
  }

  /**
   * Returns the list of FreeFlowItems that are not present in the current
   * viewport of the layout that the FreeFlowContainer is transitioning to,
   * and needs to be removed.
   * 
   * The views represnting the FreeFlowItems in this list are still on the
   * stage when the LayoutAnimator is given control if you want to animate the
   * removal. You don't have to call removeView on these items, the
   * FreeFlowContainer will do that when the animator relinquishes control by
   * calling the
   * {@link com.comcast.freeflow.core.FreeFlowContainer#onLayoutChangeAnimationsCompleted(FreeFlowLayoutAnimator anim)}
   * 
   * @return
   */
  public List<FreeFlowItem> getRemoved() {
    return removed;
  }

  /**
   * Returns all the items that will move when the layouts change (not added
   * or removed). The returned item is a Pair: the first item representing the
   * FreeFlowItem that represents the view being moved and the second the Rect
   * it is moving from.
   * 
   * To get a reference to the view thats moving, you can call item.view on
   * the FreeFlowItem. To get a reference to the Rect its moving to, call
   * item.frame.
   */
  public List<Pair<FreeFlowItem, Rect>> getMoved() {
    return moved;
  }

  @Override
  public String toString() {
    return "Added: " + added.size() + "," + "Removed: " + removed.size()
        + "," + "Moved: " + moved.size();
  }

  public boolean isEmpty() {
    return (added.size() == 0 && removed.size() == 0 && moved.size() == 0);
  }

}




Java Source Code List

com.comcast.freeflow.animations.DefaultLayoutAnimator.java
com.comcast.freeflow.animations.FreeFlowLayoutAnimator.java
com.comcast.freeflow.animations.NoAnimationLayoutAnimator.java
com.comcast.freeflow.animations.interpolators.EaseInOutQuintInterpolator.java
com.comcast.freeflow.core.AbsLayoutContainer.java
com.comcast.freeflow.core.FreeFlowContainerTest.java
com.comcast.freeflow.core.FreeFlowContainer.java
com.comcast.freeflow.core.FreeFlowEventListener.java
com.comcast.freeflow.core.FreeFlowItem.java
com.comcast.freeflow.core.IndexPath.java
com.comcast.freeflow.core.LayoutChangeset.java
com.comcast.freeflow.core.Section.java
com.comcast.freeflow.core.SectionedAdapter.java
com.comcast.freeflow.core.ViewPool.java
com.comcast.freeflow.debug.BaseFreeFlowEventListener.java
com.comcast.freeflow.debug.TouchDebugUtils.java
com.comcast.freeflow.examples.artbook.AboutActivity.java
com.comcast.freeflow.examples.artbook.ArtbookActivity.java
com.comcast.freeflow.examples.artbook.data.DribbbleDataAdapter.java
com.comcast.freeflow.examples.artbook.layouts.ArtbookLayout.java
com.comcast.freeflow.examples.artbook.models.DribbbleFeed.java
com.comcast.freeflow.examples.artbook.models.DribbbleFetch.java
com.comcast.freeflow.examples.artbook.models.Player.java
com.comcast.freeflow.examples.artbook.models.Shot.java
com.comcast.freeflow.examples.freeflowphotogrid.MainActivity.java
com.comcast.freeflow.helpers.DefaultSectionAdapter.java
com.comcast.freeflow.layouts.FreeFlowLayoutBase.java
com.comcast.freeflow.layouts.FreeFlowLayout.java
com.comcast.freeflow.layouts.HGridLayout.java
com.comcast.freeflow.layouts.HLayout.java
com.comcast.freeflow.layouts.VGridLayoutTest.java
com.comcast.freeflow.layouts.VGridLayout.java
com.comcast.freeflow.layouts.VLayout.java
com.comcast.freeflow.teststub.MainActivity.java
com.comcast.freeflow.utils.MathUtils.java
com.comcast.freeflow.utils.ViewUtils.java