Android Open Source - FileChooserActivity History Store






From Project

Back to project page FileChooserActivity.

License

The source code is released under:

Apache License

If you think the Android project FileChooserActivity 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 2012 Hai Bison/*from ww  w  .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 group.pals.android.lib.ui.filechooser.utils;

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

/**
 * A history store of any object.
 * 
 * @author Hai Bison
 * @since v2.0 alpha
 */
public class HistoryStore<A> implements History<A> {

    private List<A> list = new ArrayList<A>();
    private final int MaxSize;

    /**
     * Creates new {@link HistoryStore}
     * 
     * @param maxSize
     *            the maximum size that allowed, if it is &lt;= {@code 0},
     *            {@code 11} will be used
     */
    public HistoryStore(int maxSize) {
        this.MaxSize = maxSize > 0 ? maxSize : 11;
    }

    @Override
    public void push(A currentItem, A newItem) {
        int idx = currentItem == null ? -1 : list.indexOf(currentItem);
        if (idx < 0 || idx == size() - 1)
            list.add(newItem);
        else {
            list = list.subList(0, idx + 1);
            list.add(newItem);
        }

        if (list.size() > MaxSize)
            list.remove(0);
    }

    @Override
    public int size() {
        return list.size();
    }

    @Override
    public int indexOf(A a) {
        return list.indexOf(a);
    }

    @Override
    public A prevOf(A a) {
        int idx = list.indexOf(a);
        if (idx > 0)
            return list.get(idx - 1);
        return null;
    }

    @Override
    public A nextOf(A a) {
        int idx = list.indexOf(a);
        if (idx >= 0 && idx < list.size() - 1)
            return list.get(idx + 1);
        return null;
    }
}




Java Source Code List

group.pals.android.lib.ui.filechooser.DataModel.java
group.pals.android.lib.ui.filechooser.FileAdapter.java
group.pals.android.lib.ui.filechooser.FileChooserActivity.java
group.pals.android.lib.ui.filechooser.bean.FileContainer.java
group.pals.android.lib.ui.filechooser.utils.Converter.java
group.pals.android.lib.ui.filechooser.utils.DataModelComparator.java
group.pals.android.lib.ui.filechooser.utils.E.java
group.pals.android.lib.ui.filechooser.utils.FileComparator.java
group.pals.android.lib.ui.filechooser.utils.HistoryStore.java
group.pals.android.lib.ui.filechooser.utils.History.java
group.pals.android.lib.ui.filechooser.utils.UI.java
group.pals.android.lib.ui.filechooser.utils.Utils.java
group.pals.android.lib.ui.filechooser.utils.ui.LoadingDialog.java
group.pals.android.lib.ui.filechooser.utils.ui.TaskListener.java