diff options
Diffstat (limited to 'platform/java/src/kankan/wheel/widget/WheelRecycle.java')
-rw-r--r-- | platform/java/src/kankan/wheel/widget/WheelRecycle.java | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/platform/java/src/kankan/wheel/widget/WheelRecycle.java b/platform/java/src/kankan/wheel/widget/WheelRecycle.java deleted file mode 100644 index 242fc89e..00000000 --- a/platform/java/src/kankan/wheel/widget/WheelRecycle.java +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Android Wheel Control. - * https://code.google.com/p/android-wheel/ - * - * Copyright 2011 Yuri Kanivets - * - * 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 kankan.wheel.widget; - -import android.view.View; -import android.widget.LinearLayout; - -import java.util.LinkedList; -import java.util.List; - -/** - * Recycle stores wheel items to reuse. - */ -public class WheelRecycle { - // Cached items - private List<View> items; - - // Cached empty items - private List<View> emptyItems; - - // Wheel view - private WheelView wheel; - - /** - * Constructor - * @param wheel the wheel view - */ - public WheelRecycle(WheelView wheel) { - this.wheel = wheel; - } - - /** - * Recycles items from specified layout. - * There are saved only items not included to specified range. - * All the cached items are removed from original layout. - * - * @param layout the layout containing items to be cached - * @param firstItem the number of first item in layout - * @param range the range of current wheel items - * @return the new value of first item number - */ - public int recycleItems(LinearLayout layout, int firstItem, ItemsRange range) { - int index = firstItem; - for (int i = 0; i < layout.getChildCount();) { - if (!range.contains(index)) { - recycleView(layout.getChildAt(i), index); - layout.removeViewAt(i); - if (i == 0) { // first item - firstItem++; - } - } else { - i++; // go to next item - } - index++; - } - return firstItem; - } - - /** - * Gets item view - * @return the cached view - */ - public View getItem() { - return getCachedView(items); - } - - /** - * Gets empty item view - * @return the cached empty view - */ - public View getEmptyItem() { - return getCachedView(emptyItems); - } - - /** - * Clears all views - */ - public void clearAll() { - if (items != null) { - items.clear(); - } - if (emptyItems != null) { - emptyItems.clear(); - } - } - - /** - * Adds view to specified cache. Creates a cache list if it is null. - * @param view the view to be cached - * @param cache the cache list - * @return the cache list - */ - private List<View> addView(View view, List<View> cache) { - if (cache == null) { - cache = new LinkedList<View>(); - } - - cache.add(view); - return cache; - } - - /** - * Adds view to cache. Determines view type (item view or empty one) by index. - * @param view the view to be cached - * @param index the index of view - */ - private void recycleView(View view, int index) { - int count = wheel.getViewAdapter().getItemsCount(); - - if ((index < 0 || index >= count) && !wheel.isCyclic()) { - // empty view - emptyItems = addView(view, emptyItems); - } else { - while (index < 0) { - index = count + index; - } - index %= count; - items = addView(view, items); - } - } - - /** - * Gets view from specified cache. - * @param cache the cache - * @return the first view from cache. - */ - private View getCachedView(List<View> cache) { - if (cache != null && cache.size() > 0) { - View view = cache.get(0); - cache.remove(0); - return view; - } - return null; - } - -} |